1、准备基于 CentOS7 的jdk8的镜像。
2、下载并上传tomcat8安装包至指定目录(自己定义:/usr/local/docker),并创建Dockerfile文件。
3、编写Dockerfile文件内容
#1、指定基础镜像,并且必须是第一条指令
FROM jdk8_image:V1.0
#2、指明该镜像的作者和电子邮箱
MAINTAINER zjk "604115781@qq.com"
#3、在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /usr/local/docker
#4、一个复制命令,把jdk安装文件复制到镜像中,语法 ADD SRC DEST ,ADD命令具有自动解压功能
ADD apache-tomcat-8.5.39.tar.gz /usr/local/docker
#5、配置环境变量,此处目录为tar.gz包解压后的名称,需提前解压知晓:
#6、设置启动命令
ENTRYPOINT ["/usr/local/docker/apache-tomcat-8.5.39/bin/catalina.sh","run"]
PS:此时的基础镜像已变为“jdk8_image:V1.0”
4、开始构建镜像
docker build -t tomcat8_image .
-t:镜像的名字及标签
. 最后一个点表示使用当前路径的Dockerfile进行构建
5、可以看到tomcat8镜像已创建
docker images
6、创建并运行tomcat8容器
docker run -itd --name tomcat_container -p 8080:8080 -v /opt/tomcat/webapps/:/usr/local/docker/apache-tomcat-8.5.39/webapps/ tomcat8_image /bin/bash
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d: 后台运行容器,并返回容器ID;
--name= 为容器指定一个名称;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-v: 路径映射,宿主机路径:容器内部路径,映射后只需要操作宿主机路径内文件即可。
7、查看已运行容器列表
docker ps
8、在宿主机"/opt/tomcat/webapps/test"下创建测试文件test.html
<html>
<head>Tomcat Run In Docker</head>
<body>
hello docker.
</body>
</html>
9、浏览器访问外部链接 http://192.168.146.172:8080/test/test.html,请求成功。
至此、在jdk8的镜像上增加tomcat8已经完成,生成基于 CentOS7 的jdk8+tomcat