第一步:
docker search tomcat #查找镜像
docker pull tomcat # 拉取镜像,默认最新
第二步:
docker run -d -p 8080:8080 --name tomcat tomcat:latest #启动一个镜像,如果是服务器记得开发8080端口,如果是虚拟机也要开放端口
mkdir -p /shw/tomcat # 在宿主机上创建目录用来挂载
docker cp tomcat:/usr/local/tomcat/conf /shw/tomcat/conf # 拷贝tomcat中的配置文件到宿主机中
docker cp tomcat:/usr/local/tomcat/logs /shw/tomcat/logs # 拷贝tomcat中的日志文件到宿主机中
docker stop tomcat # 停止tomcat容器
docker rm tomcat # 删除tomcat容器
第三步:
# 创建并运行tomcat容器,执行命令的时候一行输出 docker run -d -p 8080:8080 --name mytomcat -v /shw/tomcat/webapps:/usr/local/tomcat/webapps -v /shw/tomcat/conf:/usr/local/tomcat/conf -v /shw/tomcat/logs:/usr/local/tomcat/logs --restart=always tomcat:latest
命令说明: docker run -d -p 8080:8080 # 映射端口 --name mytomcat # 起名字 -v /shw/tomcat/webapps:/usr/local/tomcat/webapps #挂载tomcat的webapps目录,这个是重点,部署的时候把war包丢进去即可 -v /shw/tomcat/conf:/usr/local/tomcat/conf # 挂载tomcat的配置文件目录 -v /shw/tomcat/logs:/usr/local/tomcat/logs # 挂载tomcat 的日志目录 --restart=always #当 Docker 重启时,容器能自动启动 tomcat:latest(镜像Id也可)
注意:有的tomcat运行的时候初始页面为404可以参照 https://blog.csdn.net/weixin_44218159/article/details/104014126 解决。
如果还是不行的话就不用管他,把容器删了重新启动一个,按照以上步骤即可,不影响部署项目,有的版本就是不支持首页,切记不用纠结,切记,切记。
部署项目的时候,只要在你挂载的宿主机/shw/tomcat/webapps目录下放上你的war包,然后重启这个容器即可。
访问:http://ip:8080/war包名称;
想看镜像的内部目录结构,就得先把镜像运行起来,进入容器后,使用ls或者ls -l查看,ll不行。
docker exec -it [容器id] /bin/bash #进入容器
docker inspect [容器id] # 查看容器挂载情况,在Mounts后面