Docker 入门私人笔记(九)构建 JDK+Tomcat 运行环境镜像

实战:制作 docker 镜像,可以快速部署 tomcat

1. 准备 tomcat 软件

cd /data/dockerfile/runtime/
mkdir tomcat
cd tomcat
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.46/bin/apache-tomcat-8.5.46.tar.gz

2. 准备 Dockerfile

本次直接使用前面制作的镜像 system/centos:v3 为基础镜像来制作,Dockerfile 配置如下:

#Base Image 指定基础镜像
FROM system/centos:v3

#Maintainer 镜像维护者的信息
MAINTAINER lu [email protected]

#RUN 想让该镜像做什么
RUN yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y && yum clean all

#配置 Java 环境变量
ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk

#Tomcat
#ADD 会自动解压复制到容器里面的压缩包
ADD apache-tomcat-8.5.46.tar.gz /usr/local
RUN ln -s /usr/local/apache-tomcat-8.5.46 /usr/local/tomcat

#For Supervisor
ADD tomcat.ini /etc/supervisor.d/tomcat.ini
ENV TOMCAT_HOME /usr/local/tomcat

#Outside port
EXPOSE 22 8080

#CMD 是使用该镜像启动的容器要运行的命令
CMD ["/usr/bin/supervisord","-c","/etc/supervisord.conf"]

3. 新建 tomcat.ini

tomcat.ini 的配置如下:

[program:tomcat]
command=/usr/local/tomcat/bin/catalina.sh run
process_name=%(program_name)s
autostart=true

注意:
此时在目录 /data/dockerfile/runtime/tomcat 下应该有3个文件:

  • apache-tomcat-8.5.46.tar.gz
  • Dockerfile
  • tomcat.ini

4. 制作 tomcat 镜像

docker build -t runtime/tomcat .

5. 验证

使用刚刚制造出来的镜像启动一个容器

docker run -d --name tomcat-demo -p 8080:8080 -p 8888:22 runtime/tomcat

接下来进行充分的验证:
确定容器成功运行后,浏览器访问 tomcat 页面:

http://192.168.100.151:8080

通过 ssh 连接容器:

ssh -p 8888 [email protected]

在容器内的进程运行,确定 supervisor、sshd、tomcat 均正常且 supervisor 的 PID 是 1:

[root@35672f30384d ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 115684 14816 ?        Ss   12:48   0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root         8  0.0  0.1 112864  4288 ?        S    12:48   0:00 /usr/sbin/sshd -D
root         9  1.4  3.9 4535084 151472 ?      Sl   12:48   0:06 /usr/lib/jvm/java-1.8.0-openjdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/
root        63  0.0  0.1 153152  5988 ?        Ss   12:53   0:00 sshd: root@pts/0
root        65  0.0  0.0  15252  1996 pts/0    Ss   12:53   0:00 -bash
root        78  0.0  0.0  55172  1860 pts/0    R+   12:55   0:00 ps aux

查看 supervisor 状态可知它管理了两个进程分别是 sshd 和 tomcat

[root@35672f30384d ~]# supervisorctl status
sshd                             RUNNING   pid 8, uptime 0:09:13
tomcat                           RUNNING   pid 9, uptime 0:09:13

你可能感兴趣的:(Docker 入门私人笔记(九)构建 JDK+Tomcat 运行环境镜像)