Docker 教程

Dockerfile实战:创建Tomcat镜像

以下是使用 Dockerfile 构建 Tomcat 镜像的步骤:

创建 my_tomcat 目录

创建一个新的目录,用于存放 Dockerfile 和相关文件。如下:

root@g450:~/my_tomcat# ll
total 4
-rw-r--r-- 1 root root 338  8月 29 20:45 Dockerfile

创建 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 的默认欢迎页面。如下图:

image.png

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号