使用 docker 运行 tomcat 服务

本文将介绍如何使用 Docker 运行一个 tomcat 服务,让后将 tomcat 的 webapps 目录映射到宿主机的指定目录。

以下是在 Docker 中运行 Tomcat 并将 webapps 目录和日志目录映射到宿主机以及暴露 8080 端口的步骤:

拉取 Tomcat 镜像

在命令行中执行以下命令拉取 Tomcat 官方镜像:

root@hxstrive:~# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
eb993dcd6942: Pull complete
ef6d67df44eb: Pull complete
a6557c86db85: Pull complete
ef80f85cafa0: Pull complete
9481abb39622: Pull complete
6eff7f04a2af: Pull complete
4f4fb700ef54: Pull complete
b65ba9907e75: Pull complete
Digest: sha256:c2f5450b66e82f44bcf9e90ba64bee6175e641cd5d03ae0dde64267b3cfed8d9
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest

启动 Tomcat 容器

假设你要将宿主机的 /path/to/host/webapps 目录映射到容器的 /usr/local/tomcat/webapps 目录,将宿主机的 /path/to/host/logs 目录映射到容器的 /usr/local/tomcat/logs目录,可以执行以下命令:

root@hxstrive:~# docker run -d -p 8080:8080 --name tomcat1 -v /opt/wwwroot/webapps:/usr/local/tomcat/webapps -v /opt/wwwroot/logs:/usr/local/tomcat/logs tomcat
3c059c5e6cdb95c766cdaf8057e110cce156bb77df600e2ac1afddaf2410000f

root@hxstrive:~# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED         STATUS         PORTS                                       NAMES
3c059c5e6cdb   tomcat    "catalina.sh run"   5 minutes ago   Up 5 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   tomcat1

命令说明:

  • --name tomcat1  为容器指定一个名称,这里是“tomcat1”,你可以根据自己的需求修改。

  • -p 8080:8080  将容器的 8080 端口映射到宿主主机的 8080 端口,以便外部可以访问 Tomcat。

  • -v /opt/wwwroot/webapps:/usr/local/tomcat/webapps  将宿主机的指定目录映射到容器中的 webapps 目录。

  • -v /opt/wwwroot/logs:/usr/local/tomcat/logs  将宿主机的指定目录映射到容器中的日志目录。

  • -d  表示以守护进程(后台)模式运行容器。

验证服务

上面成功启动了容器,现在到宿主主机的 /opt/wwwroot/webapps 目录创建一个 ROOT 目录,然后在 ROOT 目录中创建 index.html 文件,如下:

# 创建目录
root@hxstrive:/opt/wwwroot/webapps# mkdir ROOT

# 进入到 ROOT 目录
root@hxstrive:/opt/wwwroot/webapps# cd ROOT/

# 创建 index.html 文件
root@hxstrive:/opt/wwwroot/webapps/ROOT# echo '<h1>hxstrive.com</h1>' > index.html

然后访问 tomcat 服务,如下图:

image.png

注意:笔者使用 WSL2 安装 Ubuntu Linux,然后在 ubuntu 中安装 docker 服务,因此可以采用 🌐localhost:8080 进行访问。

人永远是要学习的。死的时候,才是毕业的时候。 —— 萧楚女
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号