Docker——创建Tomcat8

89 阅读3分钟

本文中创建的容器会连接到自定义网络,有两个选择:

Apache Tomcat 软件是 Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication 等规范的开源实现。而这些规范又是 Jakarta EE 平台的组成部分。

创建容器

  1. 拉取 Tomcat8 镜像。
pull tomcat:8-jdk8

8-jdk8: Pulling from library/tomcat
d1669123f281: Pull complete 
7723b4ddeaef: Pull complete 
76d9edfe8d91: Pull complete 
a151c444d575: Pull complete 
0b18e06f60c8: Pull complete 
efbcba6506bb: Pull complete 
c31997a26382: Pull complete 
Digest: sha256:e672ce42a999669743ec21f444e5e8b65a089055382dfcc87bb152301efcd2d8
Status: Downloaded newer image for tomcat:8-jdk8
docker.io/library/tomcat:8-jdk8
  1. 运行 Tomcat8 容器。
docker run -d --network topeid-network --name tomcat8-temp -p 8080:8080 tomcat:8-jdk8

aa52b5e36ebee89e1ad55df47143d9cdb404071c83270e265f3fbac1747484b0
  1. 查看容器运行状态。
docker ps

CONTAINER ID   IMAGE           COMMAND             CREATED         STATUS         PORTS                    NAMES
aa52b5e36ebe   tomcat:8-jdk8   "catalina.sh run"   6 seconds ago   Up 4 seconds   0.0.0.0:8080->8080/tcp   tomcat8-temp

Tomcat 容器已经正常运行了。

  1. 创建挂载目录。

如果我们需要部署网站文件,就需要把所有相关文件拷贝到 Tomcat 容器里面。

如果我们需要查看 Tomcat 运行的日志,修改配置文件,也需要进入容器内部进行操作。

为了便于开发和运维,我们可以把部署Web应用的文件夹,日志文件夹和配置文件夹挂载到主机目录下。

首先,创建需要进行挂载文件的基础目录,比如, /your/path/tomcat.

然后,在基础目录下创建两个子目录:webapps, logs.

cd /your/path/tomcat
mkdir webapps logs

接着,从刚刚创建的 Tomcat 容器中拷贝配置文件目录到基础目录下面。

docker cp tomcat8-temp:/usr/local/tomcat/conf /your/path/tomcat

此时,可以停止并删除 tomcat8-temp 容器。

docker sotp tomcat8-temp
docker rm tomcat8-temp

或者

docker sotp tomcat8-temp && docker rm tomcat8-temp
  1. 再次运行 Tomcat8 容器。

macOSLinux 系统中, 执行下列命令。

docker run -d \
--network topeid-network \
-p 8080:8080 \
--name tomcat8 \
-v $PWD/webapps:/usr/local/tomcat/webapps \
-v $PWD/logs:/usr/local/tomcat/logs \
-v $PWD/conf:/usr/local/tomcat/conf \
tomcat:8-jdk8

Windows 的命令行(cmd.exe)中,执行下列命令。

docker run -d ^
--network topeid-network ^
-p 8080:8080 ^
--name tomcat8 ^
-v %CD%/webapps:/usr/local/tomcat/webapps ^
-v %CD%/logs:/usr/local/tomcat/logs ^
-v %CD%/conf:/usr/local/tomcat/conf ^
tomcat:8-jdk8
  1. 查看容器运行状态。
docker ps
CONTAINER ID   IMAGE           COMMAND             CREATED          STATUS          PORTS                    NAMES
e70275b6bb4a   tomcat:8-jdk8   "catalina.sh run"   15 seconds ago   Up 14 seconds   0.0.0.0:8080->8080/tcp   tomcat8
  1. 查看容器挂载目录。
docker inspect --format='{{json .Mounts}}'  tomcat8
[
    {
        "Type":"bind",
        "Source":"/your/path/tomcat8/conf",
        "Destination":"/usr/local/tomcat/conf",
        "Mode":"",
        "RW":true,
        "Propagation":"rprivate"},
    {
        "Type":"bind",
        "Source":"/your/path/tomcat8/logs",
        "Destination":"/usr/local/tomcat/logs",
        "Mode":"",
        "RW":true,
        "Propagation":"rprivate"},
    {
        "Type":"bind",
        "Source":"/your/path/tomcat8/webapps",
        "Destination":"/usr/local/tomcat/webapps",
        "Mode":"",
        "RW":true,
        "Propagation":"rprivate"}
]
  • Source: 表示主机目录。
  • Destination: 表示容器目录。

参考文献