1、编写docker-compose.yml文件
version: "3.1"
services:
ssm:
restart: always
build: #构建自定义镜像
context: ../ #指定dockerfile文件的所在路径
dockerfile: Dockerfile #指定Dockerfile文件名称
image: ssm:1.0.1
container_name: ssm
ports:
- 8081:8080
environment:
TZ: Asia/Shanghai
2、编写Dockerfile
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps
3、在服务器上传配置文件以及war。(注意文件目录的位置)
执行命令,相关命令如下:
#可以直接启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像
docker-compose up -d
#如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像
#重新构建的话。
#重新构建自定义镜像
docker-compose build
#运行当前内容,并重新构建
docker-compose up -d --build
4、执行完启动以后,我们访问:http://192.168.150.135:8081/ssm/ 即可,如图:
5、我们发现访问需要加项目名,为了更好的访问,我们修改ssm为ROOT,然后将其上传到阿里云镜像仓库上
修改配置文件,如图:
6、首先我们执行如下命令:
docker-compose down 关闭并删除容器
然后你会发现如下错误:
这是因为你将docker-compose.yml文件修改了,没办法只能通过docker stop、docker rm等命令删除
然后再docker-compose目录下执行docker-compose up -d命令(注意重新将ROOT.war包上传到对应目录下)
然后又会发现一个新的问题,镜像名不能为大写,如图:
重新修改镜像名,如图:
重新启动以后又发现它不会直接替换ROOT包,就是ROOT.war不会自己解压需要将tomcat 原本的ROOT删除后才会解压,
于是,我们再Dockerfile中重新添加一条命令,RUN rm -frv /usr/local/tomcat/webapps/ROOT
如图:
这样它就会将tomcat原本的ROOT目录删除掉,然后就会解压我们的ROOT.war包,记得将8081改为80,这样就能后直接访问项目了,而不需要在加端口了,如图:
然后将docker镜像发布到阿里云仓库,可参考
docker pull registry.cn-hangzhou.aliyuncs.com/haijin_space/jianli:1.0.1 直接拉取个人的简历信息
docker run -d -p 80:8080 【镜像id】 拉取完以后执行该镜像。