docker stack部署与mongo卷

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker stack部署与mongo卷相关的知识,希望对你有一定的参考价值。

我用命令启动我的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中的数据?如何避免身份证?

谢谢,投球

答案

好的,我找到了答案..

基于图像:mongo:3.6 Dockerfile,已经指定了两卷:VOLUME /data/db /data/configdb

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

mongodb:
    image: mongo:3.6
    volumes:
      - /sampledir/db:/data/db                <-----
      - /sampledir/configdb:/data/configdb    <-----
    ports:
      - 127.0.0.1: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]

以上是关于docker stack部署与mongo卷的主要内容,如果未能解决你的问题,请参考以下文章

DockerDocker数据卷模式(bind mount与docker managed volume)数据卷插件convoy之NDF部署使用

docker数据管理和镜像创建dockerfile部署

Docker的部署与相关命令

Docker的部署与相关命令

【5.5】portainer的使用 数据卷

docker部署mongo 4.*集群