无法使用撰写文件版本2.4部署docker stack

时间:2020-03-05 11:33:45

标签: docker docker-compose docker-swarm docker-stack

我正在尝试使用撰写文件部署Docker堆栈。当我使用3+版本的撰写文件进行部署时,部署工作正常。但是,当我尝试使用2.4或更低版本时,会出现此错误: unsupported Compose file version: 2.4

我需要使用2.4版本,因为版本3及更高版本不支持我的容器需要的几个参数(例如cpusetruntime)。

我的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相同的灵活性。在这种情况下(当您需要使用cpusetruntime之类的参数时,唯一的解决方案是手动运行容器或移至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

2 个答案:

答案 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)

显然,不支持用于部署的较早的撰写文件版本。 https://forums.docker.com/t/cant-deploy-stack-with-compose-file-version-2-4-on-docker-19-03-6/90119