文章目录
1、准备好Jdk和Tomcat安装包
2、编写Dockerfile
3、制作镜像
4、启动容器
5、访问测试
6、发布项目(由于做了卷挂载,我们直接在本地编写项目就可以直接发布了)
注意:
编写 dockerfile 文件,官方命名 Dockerfile,build 会自动寻找这个文件,就不需要 -f 指定了 apache-tomcat-8.5.34.tar.gz、jdk-8u241-linux-x64.tar.gz、readme.txt、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执行 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 查看构建的镜像:
说明: -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输入地址:http://IP+端口号
项目示例:项目示例下载
访问 tomcat 服务器内的应用,测试查看是否可以访问到
由上图访问,项目部署成功,访问OK!
—— 励志前行,明天会更好!