点击学习开源企业 Docker 镜像仓库 Harbor 软件 教程。
以下是使用 Dockerfile 构建 Tomcat 镜像的步骤:
创建一个新的目录,用于存放 Dockerfile 和相关文件。如下:
root@g450:~/my_tomcat# ll total 4 -rw-r--r-- 1 root root 338 8月 29 20:45 Dockerfile
在当前目录下创建一个名为Dockerfile的文件,并添加以下内容:
FROM ubuntu:latest RUN apt-get update && apt-get install -y openjdk-8-jre wget RUN wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz RUN tar -xvf apache-tomcat-9.0.93.tar.gz -C /opt ENV CATALINA_HOME /opt/apache-tomcat-9.0.93 ENV PATH $CATALINA_HOME/bin:$PATH EXPOSE 8080 CMD ["catalina.sh", "run"]
以下是对这个 Dockerfile 的分析:
(1)基础镜像和软件安装部分:
以 ubuntu:latest 作为基础镜像,这是一个常见的选择,Ubuntu 系统提供了丰富的软件包管理工具和广泛的软件支持。
通过 apt-get update 确保软件包列表是最新的,然后安装了 openjdk-8-jre 和 wget。这为后续安装和运行 Tomcat 提供了必要的 Java 运行环境和下载工具。
使用 wget 下载了 Apache Tomcat 9.0.93 的压缩包,并将其解压到 /opt 目录下。
(2)环境变量设置部分:
设置了 CATALINA_HOME 环境变量为 /opt/apache-tomcat-9.0.93,这个变量指定了 Tomcat 的安装目录。
将 CATALINA_HOME/bin 添加到 PATH 环境变量中,这样可以在任何位置直接执行 Tomcat 的命令,如 catalina.sh。
(3)端口暴露和启动命令部分:
EXPOSE 8080 声明了容器将暴露 8080 端口,这是 Tomcat 的默认端口,使得外部可以通过这个端口访问容器内运行的 Tomcat 服务。
CMD ["catalina.sh", "run"] 指定了容器启动时执行的命令,即运行 Tomcat 的启动脚本。
在该目录下执行 docker build 命令来构建镜像:
root@g450:~/my_tomcat# docker build -t my_tomcat . [+] Building 65.7s (8/8) FINISHED docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 377B 0.0s => [internal] load metadata for docker.io/library/ubuntu:latest 65.5s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [1/4] FROM docker.io/library/ubuntu:latest@sha256:8a37d68f4f73ebf3d4efafbcf66379bf3728902a8038616808f04e34a9ab63ee 0.0s => CACHED [2/4] RUN apt-get update && apt-get install -y openjdk-8-jre wget 0.0s => CACHED [3/4] RUN wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz 0.0s => CACHED [4/4] RUN tar -xvf apache-tomcat-9.0.93.tar.gz -C /opt 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:4ba23be9eec407c002dee68a5c92ce32eb8eafdfed42baab582d97e37c140eae 0.0s => => naming to docker.io/library/my_tomcat 0.0s 2 warnings found (use docker --debug to expand): - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 7) - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 8) root@g450:~/my_tomcat# docker images | grep my_tomcat my_tomcat latest 4ba23be9eec4 6 minutes ago 715MB
使用上面创建的 Dockerfile 构建一个名为 my_tomcat 的镜像。
镜像构建完成后,可以使用以下命令运行容器:
root@g450:~/my_tomcat# docker run --name my_tomcat -p 8080:8080 -d my_tomcat 308dab4a42602299dc1c80491ba91ded3f4cf368960869d92b42681e4194b825
上面命令将在后台运行 my_tomcat 容器,并将容器的 8080 端口映射到主机的 8080 端口。
现在,你可以在浏览器中访问http://宿主机IP:8080来查看你的 Tomcat 服务。如果一切正常,你应该能够看到 Tomcat 的默认欢迎页面。如下图:
点击学习开源企业 Docker 镜像仓库 Harbor 软件 教程。