Docker jdk8镜像的基础上增加tomcat8

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

原文地址:https://www.cnblogs.com/lansetuerqi/p/12553115.html