文章目录
1、准备好Jdk和Tomcat安装包
2、编写Dockerfile
3、制作镜像
4、启动容器
5、访问测试
6、发布项目(由于做了卷挂载,我们直接在本地编写项目就可以直接发布了)
1、准备好Jdk和Tomcat安装包

注意:
- 编写 dockerfile 文件,官方命名 Dockerfile,build 会自动寻找这个文件,就不需要 -f 指定了
- apache-tomcat-8.5.34.tar.gz、jdk-8u241-linux-x64.tar.gz、readme.txt、Dockerfile放在同一目录
2、编写Dockerfile
内容如下:
[root@web build_dockerfile]# vim Dockerfile
# 指定操作的镜像
FROM centos:1.0
# 维护者信息
MAINTAINER Bertram<1111@qq.com>
# 覆盖相关文件
COPY readme.txt /usr/local/readme.txt
# 将 jdk 和 tomcat 添加到镜像centos的/usr/local/目录下,ADD 命令会自动解压 将tar包解压到这个路径
ADD jdk-8u241-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.34.tar.gz /usr/local/
# 安装一下基本命令
RUN yum -y install net-tools
# 设置默认工作目录
ENV MYPATH /usr/local
WORKDIR $MYPATH
# 添加环境变量
ENV JAVA_HOME=/usr/local/jdk1.8.0_241
ENV JRE_HOME=/usr/local/jdk1.8.0_241/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/bin
ENV export JAVA_HOME JRE_HOME CLASSPATH PATH
# 暴露端口8080
EXPOSE 8080
# 容器启动时运行tomcat && 拼接一些参数 tail -F 显示文件新追加的内容
CMD /usr/local/apache-tomcat-8.5.34/bin/catalina.sh run && tail -f /usr/local/apache-tomcat-8.5.34/logs/catalina.out
3、制作镜像
执行 docker build 制作镜像:
[root@web build_dockerfile]# docker build -t mytomcat:1.0 .
Sending build context to Docker daemon 204.2MB
Step 1/15 : FROM centos:1.0
---> adff76c66068
Step 2/15 : MAINTAINER Bertram<1111@qq.com>
---> Running in a00c8bdb7072
Removing intermediate container a00c8bdb7072
---> c484a48d21f9
Step 3/15 : COPY readme.txt /usr/local/readme.txt
---> e42d2c281f99
Step 4/15 : ADD jdk-8u241-linux-x64.tar.gz /usr/local/
---> 94d850a34a0e
Step 5/15 : ADD apache-tomcat-8.5.34.tar.gz /usr/local/
---> 3aab0a6211d5
Step 6/15 : RUN yum -y install net-tools
---> Running in 4a8e14b65adf
Last metadata expiration check: 0:28:12 ago on Wed Oct 21 02:11:43 2020.
Package net-tools-2.0-0.51.20160912git.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Removing intermediate container 4a8e14b65adf
---> f135802e0e58
Step 7/15 : ENV MYPATH /usr/local
---> Running in 58e00bc89fc2
Removing intermediate container 58e00bc89fc2
---> 496b6f9ac502
Step 8/15 : WORKDIR $MYPATH
---> Running in 8bedf4e0d1dc
Removing intermediate container 8bedf4e0d1dc
---> 64c45a8045ea
Step 9/15 : ENV JAVA_HOME=/usr/local/jdk1.8.0_241
---> Running in 28c14ef91111
Removing intermediate container 28c14ef91111
---> ee33621eb0c5
Step 10/15 : ENV JRE_HOME=/usr/local/jdk1.8.0_241/jre
---> Running in 81caf68c3e0a
Removing intermediate container 81caf68c3e0a
---> 4ac2a64acdbc
Step 11/15 : ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
---> Running in 31282e39280b
Removing intermediate container 31282e39280b
---> 1697ff0d848d
Step 12/15 : ENV PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/bin
---> Running in ee337673cd93
Removing intermediate container ee337673cd93
---> a4fcbb8cd124
Step 13/15 : ENV export JAVA_HOME JRE_HOME CLASSPATH PATH
---> Running in 99e892cf4cfc
Removing intermediate container 99e892cf4cfc
---> 4972db655fe2
Step 14/15 : EXPOSE 8080
---> Running in fcc5ce81cf94
Removing intermediate container fcc5ce81cf94
---> 3ca65caf3597
Step 15/15 : CMD /usr/local/apache-tomcat-8.5.34/bin/catalina.sh run && tail -F /usr/local/apache-tomcat-8.5.34/bin/logs/catalina.out
---> Running in 88239471f32b
Removing intermediate container 88239471f32b
---> 64e6e2af21b3
Successfully built 64e6e2af21b3
Successfully tagged mytomcat:1.0
说明: -t 设置tag名称, 命名规则registry/image:tag(若不添加版本号,默认latest) . 表示使用当前目录下的Dockerfile文件(注意语句后面有一个点),如需指定目录,则用 -f
执行 docker images 查看构建的镜像:

4、启动容器
[root@web build_dockerfile]# docker run -p 9080:8080 --name mytomcat -v /data/tomcat/build/test:/usrl/local/apache-tomcat-8.5.34/webapps/test -v /data/tomcat/logs/tomcatlogs:/usrl/local/apache-tomcat-8.5.34/logs -d mytomcat:1.0
说明: -d 后台运行 --name mytomcat 容器名称 -v /data/tomcat/build/test:/usrl/local/apache-tomcat-8.5.34/webapps/test 挂载当前test项目的运行目录到tomcat下的webapps --privileged=true 设置拥有容器中的真正的root权限 -p 9080:8080 映射端口(宿主机port : 容器port) mytomcat:1.0 镜像的名称
执行docker ps 查看进程

进入容器内查看目录
//docker exec -it 容器id /bin/bash
[root@web test]# docker exec -it eef3f1673517 /bin/bash
5、访问测试
输入地址:http://IP+端口号

6、发布项目(由于做了卷挂载,我们直接在本地编写项目就可以直接发布了)
项目示例:项目示例下载
访问 tomcat 服务器内的应用,测试查看是否可以访问到

由上图访问,项目部署成功,访问OK!
—— 励志前行,明天会更好! |