上一篇文章 :CentOS7环境下安装docker
开搞!如果你还没有在CentOS7系统中安装好了docker,请看一下上篇文章
启动docker
sudo systemctl start docker
1:查看所有本地上的镜像,查看有没有安装过tomcat镜像,如果没有就拉取一个
docker images
2:拉取一个tomcat镜像
docker pull tomcat:版本号 (只写tomcat 默认为latest版本)
3:需要先随便安装第一个容器(为什么说先随便安装一个,后面介绍)- - name 表示容器的名字,-d 表示后端运行,- p表示主机端口8888映射到容器端口8080
docker run --name tomcat8080 -p 8081:8080 -d tomcat
4:现在访问宿主机ip:8081会报404, 因为在tomcat容器文件中 webapps文件是空的。进入docker中tomcat的容器。
docker exec -it 容器id /bin/bash
5:将webapps.dist文件内容复制到webapps中,或者将webapps删除,将webapps.dist改为webapps -r复制多个文件夹 (我这李用的是复制方法)
cp -r /usr/local/tomcat/webapps.dist/{ROOT,docs,examples,host-manager,manager} /usr/local/tomcat/webapps/
6:退出容器
exit
7:在宿主机上创建文件夹,目的是与容器中tomcat配置文件产生映射关系(建立映射关系最主要目的:方便在修改tomcat容器配置或者往webapps中添加项目时,可以直接在宿主机的映射文件中修改添加即可)
mkdir /home/tomcat/tomcat8081/webapps -p
mkdir /home/tomcat/tomcat8081/logs -p
mkdir /home/tomcat/tomcat8081/conf -p
8:将容器中的文件分别复制到宿主机上
docker cp 780f560f6b32:/usr/local/tomcat/webapps/ /home/tomcat/tomcat8081/
docker cp 780f560f6b32:/usr/local/tomcat/conf/server.xml /home/tomcat/tomcat8081/conf
9:上面两个(7,8)步骤是为了获取tomcat容器的配置文件,然后就可以删除这个容器,然后重新创建一个可用容器(因为用的是同样的镜像,所以创建的第二个容器页是一样的),这次创建容器时,直接创建好映射关系
- - name 表示容器的名字,-d 表示后端运行,- p表示主机端口8888映射到容器端口8080
-v 配置tomcat中对应文件目录映射:冒号前是本地路径,冒号后是容器中tomcat配置路径文件以及地址
docker run --name tomcat8081 -p 8081:8080 -v /home/tomcat/tomcat8081/webapps:/usr/local/tomcat/webapps -v /home/tomcat/tomcat8081/logs:/usr/local/tomcat/logs -v /home/tomcat/tomcat8081/conf/server.xml:/usr/local/tomcat/conf/server.xml -d tomcat
这样配置你就可以在主机上,访问虚拟机的IP:8081来进入容器里面的tomcat页面了!
解释:创建第一个tomcat容器,只是因为需要将第一个容器中tomcat中的配置文件复制出来而已,否则创建容器时直接关联映射,会导致容器里内容被删除,导致容器不能启动!
我想要好多个容器怎么办???
如果需要多创建几个tomcat容器,只需要分别复制那三个映射文件内容与容器中文件对应。例如:
cp -r /home/tomcat/tomcat8081/webapps /home/tomcat/tomcat8082/
cp -r /home/tomcat/tomcat8081/logs/ /home/tomcat/tomcat8082/
cp -r /home/tomcat/tomcat8081/conf/ /home/tomcat/tomcat8082/
然后运行
docker run --name tomcat8082 -p 8082:8080 -v /home/tomcat/tomcat8082/webapps:/usr/local/tomcat/webapps -v /home/tomcat/tomcat8082/logs:/usr/local/tomcat/logs -v /home/tomcat/tomcat8082/conf/server.xml:/usr/local/tomcat/conf/server.xml -d tomcat:9.0.45
大功告成,现在就可以运行多个tomcat,只是端口不同。可与Nginx配合使用,轮询访问,或者分配权重,效果更佳!
删除容器 (不能删除正在运行的容器)
docker rm 容器id // 删除指定容器
docker rm -f $(docker ps -ap) //删除所有的容器
启动和停止容器的操作
docker start 容器id //启动容器
docker restart 容器id //重启容器
docker stop 容器id //停止当前运行的容器
docker kill 容器id //强制停止当前容器