Docker中每个容器都有自己单独的空间,所以数据卷的容器部分可以写相同,数据卷的宿主机部分需要写单独的,其他的部分只要容器名和端口区分开来就行,比如两个tomcat服务的Docker-compose服务的配置文件如下:
宿主机8081端口
# 宿主机8081
version: '3.3'
services:
tomcat2: #这里注意区分
restart: always
image: daocloud.io/library/tomcat:8.5.15-jre8
container_name: tomcat2 #这里注意区分
ports:
- 8081:8080 #注意这里的端口是8081
environment:
TZ: Asia/Shanghai
#这里注意宿主机的位置要区分开来,这里8081端口对应的宿主机挂载点是Tomcat2目录下
#容器部分的位置的值是相同的
volumes:
- /d/vm/DockerFile/Tomcat2/webapps:/usr/local/tomcat/webapps
- /d/vm/DockerFile/Tomcat2/logs:/usr/local/tomcat/logs
宿主机8080端口
#基本注意点和上面相同
version: '3.3'
services:
tomcat:
restart: always
image: daocloud.io/library/tomcat:8.5.15-jre8
container_name: tomcat
ports:
- 8080:8080
environment:
TZ: Asia/Shanghai #指定时区
volumes:
- /d/vm/DockerFile/Tomcat/webapps:/usr/local/tomcat/webapps
- /d/vm/DockerFile/Tomcat/logs:/usr/local/tomcat/logs
然后分别运行这两个Docker-compose文件,在宿主机相应的位置添加一两个测试网页,如果没有问题的话,可以看到如下结果
至此使用docker-compose用一个镜像创建两个不同端口的tomcat服务已经测试成功