1.查找Docker Hub上的tomcat镜像
docker search tomcat
2.拉取官方的镜像
docker pull tomcat
3.查看镜像
docker images tomcat
4.使用Tomcat默认的配置来启动一个Tomcat容器
docker run -d -p 8080:8080 --name tomcat tomcat:latest
如果报错:docker: Error response from daemon: Conflict. The container name "/tomcat" is already in use by container "2fa8695213af7cb40710a3492c1f6d32f9e429421929d63c1e9ad91fc85df641". You have to remove (or rename) that container to be able to reuse that name. See
解决办法
![1f70f406d3c5001dd5194f45a1a7936f.png](https://i-blog.csdnimg.cn/blog_migrate/34f1a2d98731bf459b3da2a06b7fb728.jpeg)
如果还是报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen
docker服务启动时定义的自定义链DOCKER由于某种原因被清掉
重启docker服务及可重新生成自定义链DOCKER
解决办法
systemctl restart docket
5.建Tomcat目录
mkdir -p /usr/app/tomcat
6.拷贝容器内Tomcat配置文件和日志到本地
docker cp tomcat:/usr/local/tomcat/conf /usr/app/tomcat/conf
docker cp tomcat:/usr/local/tomcat/logs /usr/app/tomcat/logs
7.停止tomcat容器
docker stop tomcat
8.删除tomcat容器
docker rm tomcat
9.创建并运行tomcat容器
docker run -d -p 8080:8080 --name tomcat -v /usr/app/tomcat/webapps:/usr/local/tomcat/webapps -v /usr/app/tomcat/conf:/usr/local/tomcat/conf -v /usr/app/tomcat/logs:/usr/local/tomcat/logs --restart=always tomcat:latest
10.查看创建的容器
docker ps | grep tomcat
11.查看容器的ip地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' tomcat
12.查看firewalld状态
systemctl status firewalld
13.开启firewalld(可选,未开启时执行)
systemctl start firewalld
14.开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
15.重新载入
firewall-cmd --reload
16.查看是否生效
firewall-cmd --zone=public --query-port=8080/tcp
17.查看Tomcat日志
docker logs -f -t --tail 20 tomcat
如果启动正常,在对应的/usr/local/tomcat/webapps 创建个ROOT文件夹,里面创建个index.html
转自百度