前言:安装好docker,简单熟悉下命令后,现在学习下以Dockerfile自定义image。
1. 建立简单文件服务器
- 这个文件服务器给下面的 Dockerfile 提供 tomcat和jdk下载地址
> cat /data/scripts/simple_ftp_py.sh
#!/bin/bash
ftp_dir=/data/packages
ftp_port=1234
cd $ftp_dir
python -m SimpleHTTPServer $ftp_port
> nohuo bash /data/scripts/simple_ftp_py.sh &
查看
2. 编写Dockerfile
> cat /data/docker/dockerfile/tomcat7/Dockerfile
# bash image
FROM centos
MAINTAINER itimor "itimor@126.com"
# Install JDK 7
COPY jdk-7u79-linux-x64.tar.gz /tmp/jdk-7u79-linux-x64.tar.gz
RUN cd /tmp && tar xf jdk-7u79-linux-x64.tar.gz -C /usr/local/ && rm -rf /tmp/jdk-7u79-linux-x64.tar.gz
ENV JAVA_HOME /usr/local/jdk1.7.0_79
ENV PATH $PATH:/$JAVA_HOME/bin
# Install tomcat7
COPY apache-tomcat-7.0.93.tar.gz /tmp/apache-tomcat-7.0.93.tar.gz
RUN cd /tmp && tar xf apache-tomcat-7.0.93.tar.gz && mv apache-tomcat-7.0.93 /usr/local/tomcat && rm -rf /tmp/apache-tomcat-7.0.93.tar.gz
# Add tomcat.sh
ADD tomcat /etc/init.d/tomcat
RUN chmod 755 /etc/init.d/tomcat
# Expose ports
EXPOSE 8080
# Define default command
ENTRYPOINT /etc/init.d/tomcat start && tail -f /usr/local/tomcat/logs/catalina.out
3. tomcat启动文件
cat /data/docker/dockerfile/tomcat7/tomcat7
#!/bin/bash
export JAVA_HOME=/usr/local/jdk1.8.0_74
export TOMCAT_HOME=/usr/local/tomcat7
case $1 in
start)
sh $TOMCAT_HOME/bin/startup.sh
;;
stop)
sh $TOMCAT_HOME/bin/shutdown.sh
;;
restart)
sh $TOMCAT_HOME/bin/shutdown.sh
sh $TOMCAT_HOME/bin/startup.sh
;;
esac
exit 0
4. 验证 Dockerfie
执行 Dockerfie
docker build -t 1.1.1.5000/tomcat7-jdk8 .
启动容器并查看tomcat日志
docker run -it -p 8888:8080 --name tomcat7 1.1.1.5000/tomcat7-jdk8
参数说明:
-d 后台运行
-it 前台交互式运行
-p 8888:8080 将宿主机的8888端口映射到容器的8080端口
—name tomcat7 给容器命名为tomcat7
浏览器访问
- 好了,Dockerfile构建tomcat成功。