(十三)创建Tomcat+jdk8镜像

itmahy
itmahy
发布于 2024-01-18 / 33 阅读
0
0

(十三)创建Tomcat+jdk8镜像

创建Tomcat+jdk8镜像

1.准备工作

  • jdk-8u191-linux-x64.tar.gz

将文件上传到服务器之后,使用 tar -zxvf jdk-8u191-linux-x64.tar.gz 解压查看解压后的文件夹名称,方便在Dockerfile中设置环境变量

上图蓝色的jdk1.8.0_191目录是解压后的目录。

  • apache-tomcat-8.5.85.tar.gz

同理,将文件上传到服务器之后,使用 tar -zxvf apache-tomcat-8.5.85.tar.gz 解压查看解压后的文件夹名称,方便在Dockerfile中设置环境变量

上图蓝色的apache-tomcat-8.5.85目录是解压后的目录。

  • Dockerfile(推荐这么命名)

# 基础镜像
FROM centos:7
# 作者
MAINTAINER itmahy<[email protected]>
# 将文件添加到 /usr/local/ 目录下,如果是压缩包自动解压
ADD jdk-8u191-linux-x64.tar.gz /usr/local
ADD apache-tomcat-8.5.85.tar.gz /usr/local

# 用来在构建镜像过程中设置环境变量
ENV MYPATH /usr/local

# 指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
WORKDIR $MYPATH
# 设置jdk跟tomcat的环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.85
ENV CATALINE_BASH /usr/local/apache-tomcat-8.5.85
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINE_HOME/bin
# 设置容器卷,容器启动时,容器会默认在宿主机创建跟下面目录对应的数据卷,效果看后面会出现
VOLUME ["/usr/local/apache-tomcat-8.5.85/webapps","/usr/local/apache-tomcat-8.5.85/logs"]
# 当前容器对外暴露出的端口
EXPOSE 8080

# docker run 时运行的命令
CMD /usr/local/apache-tomcat-8.5.85/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.5.85/logs/catalina.out

Dockerfile编辑完成之后,上传到服务器,至此,准备工作完毕。

2. 执行 Build 命令

  • 命令格式:docker build -t [镜像名称]:TAG .

  • 注意: 不要忘记最后面的 点 ( . )

至此,镜像创建完成。

3. 查看镜像

4. 测试

  • 创建容器: docker run -d --name test-tomct -p 8081:8080 itmahy-tomcat:1.0 bash

  • 查看容器详情: docker inspect test-tomct

  • 在容器详情中找到 Mounts节点,查看容器卷的挂在情况,Source 指定的是宿主机上容器卷的目录,默认生成的。

  • 再次创建容器,并指定容器卷

docker run -it \
--name test-tomcat-1 \
-p 8083:8080 \
-v /opt/demo/test/test-tomct-1/webapps:/usr/local/apache-tomcat-8.5.85/webapps \
-v /opt/demo/test/test-tomct-1/logs:/usr/local/apache-tomcat-8.5.85/logs \
--privileged=true \
itmahy-tomcat:1.0 \
bash
  • 查看新创建容器的 Mounts节点

至此,创建Tomcat+jdk8镜像就创建完成并完成测试了。

注意:

这种 DockerFile build 的镜像, 在执行 docker run 的时候,命令末尾不能添加 /bash 或者 /bin/bash 的cmd命令,

具体原因如下:


评论