我正在尝试使用撰写文件部署Docker堆栈。当我使用3+版本的撰写文件进行部署时,部署工作正常。但是,当我尝试使用2.4或更低版本时,会出现此错误:
unsupported Compose file version: 2.4
我需要使用2.4版本,因为版本3及更高版本不支持我的容器需要的几个参数(例如cpuset
和runtime
)。
我的docker版本是19.03.6,docker-compose是1.25.4。
有什么方法可以在Docker 19.03.6上使用较早版本的compose文件进行部署吗?我是否缺少某些东西,或者最新的docker版本不再支持较早的compose文件?
更新
事实证明,docker 19.03.6在部署中仅支持版本3+。因此,除了版本3+,我什么都不能使用,就CPU使用率设置而言,它不能提供与V2.4相同的灵活性。在这种情况下(当您需要使用cpuset
和runtime
之类的参数时,唯一的解决方案是手动运行容器或移至Kubernetes之类的容器。
以下是撰写文件的示例:
3.7版(有效)
version: '3.7'
services:
mongo:
image: mongo
volumes:
- ~/ProcessingServerData/mongodb/db:/data/db
- ~/ProcessingServerData/mongodb/configdb:/data/configdb
networks:
- proc-net
mongo-express:
image: mongo-express
depends_on:
- mongo
ports:
- 8081:8081
networks:
- proc-net
visualizer:
image: dockersamples/visualizer:stable
ports:
- 8082:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- proc-net
deploy:
placement:
constraints: [node.role == manager]
networks:
proc-net:
driver: overlay
attachable: true
版本2.4(无效)
version: '2.4'
services:
mongo:
image: mongo
volumes:
- type: bind
source: ~/ProcessingServerData/mongodb/db
target: /data/db
- type: bind
source: ~/ProcessingServerData/mongodb/configdb
target: /data/configdb
networks:
- proc-net
deploy:
resources:
cpuset: 0,1
mongo-express:
image: mongo-express
depends_on:
- mongo
ports:
- 8081:8081
networks:
- proc-net
deploy:
resources:
cpuset: 0,1
visualizer:
image: dockersamples/visualizer:stable
ports:
- 8082:8080
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
networks:
- proc-net
deploy:
resources:
cpuset: 0,1
placement:
constraints: [node.role == manager]
networks:
proc-net:
driver: overlay
答案 0 :(得分:0)
deploy
配置选项在2.4中不受支持,您需要将文件更改为此
version: '2.4'
services:
mongo:
image: mongo
volumes:
- type: bind
source: ~/ProcessingServerData/mongodb/db
target: /data/db
- type: bind
source: ~/ProcessingServerData/mongodb/configdb
target: /data/configdb
networks:
- proc-net
mongo-express:
image: mongo-express
depends_on:
- mongo
ports:
- 8081:8081
networks:
- proc-net
visualizer:
image: dockersamples/visualizer:stable
ports:
- 8082:8080
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
networks:
- proc-net
networks:
proc-net:
driver: overlay
答案 1 :(得分:0)