环境
操作系统:CentOS8 ,已安装Docker(CentOS 8 的docker安装 https://www.cnblogs.com/luyj00436/p/14515187.html)。
安装和运行步骤
1、用命令查看可用版本。
docker search tomcat
2、拉取相应的tomcat镜像。
docker pull tomcat
安装完成。
3、查看是否安装Tomcat镜像。
docker images tomcat
4、打开端口8082(如果已打开,可以省略)。这里用firewarll-cmd命令(firewalls-cmd 的使用https://www.cnblogs.com/luyj00436/p/14528946.html)打开8082端口。
1 # 1.安装firewall(已存在则跳过该步骤)。 2 yum install firewalld 3 # 2. 开启firewall (已启动则跳过该步骤)。 4 systemctl start firewalld 5 # 或者设置开机启动。重启后,firewall仍然处于开启状态。 6 systemctl enable firewalld 7 # 开放端口8082,其中–permanent永久生效,如果没有这个参数,重启后失效。 8 firewall-cmd --add-port=8082/tcp --permanent 9 # 4. 重新载入,更新防火墙规则。 10 firewall-cmd --reload 11 # 5. 此时,8082端口已经打开,可以查看开放的端口。 12 firewall-cmd --zone=public --list-port
5、安装临时容器,并测试。安装临时容器的目的是为了复制配置到宿主机。
docker run -d -p 8082:8080 --name tomcat tomcat:latest
参数说明
参数 |
说明 |
--tomcat-test |
容器名称。如果没有这个参数,将自动生成。 |
-p 8082:8080 |
端口进行映射。将本地8082端口映射到容器内部的8080端口。 也就是说,我们将使用8082访问tomcat |
6、创建目录tomcat,用于存放安装映射相关的东西。
mkdir -p ~/tomcat/webapps ~/tomcat/logs ~/tomcat/conf
目录映射关系
目录 |
说明 |
webapps |
映射为 tomcat 容器配置的应用程序目录 |
Logs |
映射为tomcat容器的日志目录 |
conf |
目录里的配置文件将映射为 tomcat 容器的配置文件 |
7、复制容器的配置文件到conf ,并删除容器。
a) 找到运行中的http容器。
docker ps -a
b) 复制查询到的容器id。并根据容器Id拷贝apache默认文件到本地当前目录下的conf目录。
docker cp [容器id]:/usr/local/tomcat/conf ~/tomcat/conf docker cp [容器id]:/usr/local/tomcat/logs ~/tomcat/logs
3) 删除临时容器。
docker stop [容器id] docker rm [容器id]
8、运行容器。
docker run --name tomcat-test -p 8082:8080 -v ~/tomcat/webapps:/usr/local/tomcat/webapps -v ~/tomcat/conf:/usr/local/tomcat/conf -v ~/tomcat/logs:/usr/local/tomcat/logs -d tomcat
参数说明:
参数 |
说明 |
--name tomcat-test |
容器名称。如果没有这个参数,将自动生成。 |
-p 8082:80 |
端口进行映射。将本地8082端口映射到容器内部的8080端口。 也就是说,我们将使用8082访问tomcat |
-v [目录A]:[目录B] |
讲目录A挂载到目录B |
-d docker |
设置一个容器在后台运行。 |
容器创建完成。
查看容器是否运行成功。(运行失败)
docker ps -a
这时候,我们能通过浏览器访问Tomcat来验证是否运行成功。
参考网址
Docker 安装 Tomcat : https://www.runoob.com/docker/docker-install-tomcat.html
Docker 安装Tomcat : https://jingyan.baidu.com/article/454316ab8bafa6b7a7c03aa3.html