docker stack部署与mongo卷

时间:2018-03-02 11:05:48

标签: docker docker-compose docker-volume

我用命令启动我的docker堆栈:

docker stack deploy --with-registry-auth -c docker-compose.yml app 

我的docker-compose.yml包含mongo的条目:

mongodb:
    image: mongo:3.6
    volumes:
      - mongodb:/var/lib/mongodb
    ports:
      - 27017:27017
    networks:
      - backend
    environment:
      - AUTH=yes
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "5"
    deploy:
        replicas: 1
        placement:
          constraints: [node.hostname == hostname]

networks:
  frontend:
  backend:

volumes:
  mongodb:

我使用docker stack rm app停止泊坞窗堆叠为什么我在第二次启动后使用相同的命令docker stack deploy --with-registry-auth -c docker-compose.yml app丢失mongo中的数据?如何避免id?

谢谢,smola

1 个答案:

答案 0 :(得分:1)

好的,我找到了回答..

基于image:mongo:3.6 Dockerfile,已经指定了两个 卷: H T Before [o o o o o . o o ] H T After [o o o o o . . . . . . . . . o o ]

所以在docker-compose.yml中需要将主机目录挂载到该卷中:

VOLUME /data/db /data/configdb