基于Dockerfile构建Tomcat+JDK的镜像
(1)基于Dockerfile构建镜像依赖基础镜像,先下载个基础镜像
[root@localhost ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
(2)将Tomcat和JDK应用程序放在Dockerfile的同级目录下
[root@localhost docker]# ls -ltr
total 194636
-rw-r--r--. 1 root root 9544774 Aug 13 07:55 apache-tomcat-8.5.28.tar.gz
-rw-r--r--. 1 root root 189756259 Aug 13 07:56 jdk-8u161-linux-x64.tar.gz
(3)开始编写Dockerfile
[root@localhost docker]# cat Dockerfile
FROM centos:latest
MAINTAINER zhangq
#执行命令:创建目录
#将Tomcat和jdk添加到镜像centos的/usr/local/soft/目录下
ADD apache-tomcat-8.5.28.tar.gz /usr/local/
ADD jdk-8u161-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_161
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.28
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.28
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#暴露8080端口
EXPOSE 8080
#启动时运行TOMCAT
CMD ["/usr/local/apache-tomcat-8.5.28/bin/catalina.sh","run"]
(4)开始构建容器镜像
[root@localhost docker]# docker build -t my_tomcat:v1.0 .
[+] Building 46.4s (8/8) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.3s
=> => transferring dockerfile: 694B 0.0s
=> [internal] load .dockerignore 0.4s
=> => transferring context: 2B 0.1s
=> [internal] load metadata for docker.io/library/centos:latest 0.0s
=> [1/3] FROM docker.io/library/centos:latest 0.0s
=> [internal] load build context 10.0s
=> => transferring context: 199.35MB 8.2s
=> [2/3] ADD apache-tomcat-8.5.28.tar.gz /usr/local/ 2.5s
=> [3/3] ADD jdk-8u161-linux-x64.tar.gz /usr/local/ 16.4s
=> exporting to image 15.3s
=> => exporting layers 14.7s
=> => writing image sha256:a93bbcf8ae71ae85bc5cf835d30be623ab24062d898416bdfea0a6fb23997181 0.1s
=> => naming to docker.io/library/my_tomcat:v1.0 0.1s
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my_tomcat v1.0 a93bbcf8ae71 47 seconds ago 629MB
hello-world latest 9c7a54a9a43c 3 months ago 13.3kB
centos latest 5d0da3dc9764 23 months ago 231MB
(5)启动容器验证镜像
[root@localhost docker]# docker run -d --name mytomcat -p 8080:8080 my_tomcat:v1.0
f024c07379c33714c85e51167a728f9888c2a549df7b3a0496e5297711737bbc
[root@localhost docker]#
[root@localhost docker]#
[root@localhost docker]#
[root@localhost docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f024c07379c3 my_tomcat:v1.0 "/usr/local/apache-t…" 8 seconds ago Up 3 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp mytomcat
[root@localhost docker]#