docker 部署mongo被误删库怎么恢复求助

用的 docker-compose 部署的,修改yml配置,然后重新 docker-compose up -d
发现库被清库了:confounded:

不应该啊,不是挂载了data目录吗,容器重建会把数据删了?数据有办法恢复吗

version: '3.1'

services:
  mongo:
    image: mongo
    deploy:
      resources:
        limits:
          memory: 1G
    command: --wiredTigerCacheSizeGB 0.5
    restart: always
    
    ports:
      - 27017:27017
    volumes:
      - /root/mongodb-data:/data

@k1995 非常感谢大佬,可以了!

挂载路径不对,正确的应该挂载到 /data/db,而不是 /data:

volumes:
      - /root/mongodb-data/db:/data/db

你可以查看mongo的Dockerfile,默认会为/data/db创建一个匿名卷。

容器销毁后,卷不会自动删除,所以你数据还在不要慌。你可以到 /var/lib/docker/volumes/ 下面找下

经过多次测试,发现mongo的数据是存在容器的/data/db 目录下的,该目录下是有数据的,为什么宿主机的 /root/mongodb-data/db 目录里的 db 是空的,按理是有数据的啊。