docker-compose.yml
包含一个卷定义和使用它的服务。
#(This is a reduced but representative example)
services:
mongo:
image: mongo:3.6.11
...
volumes:
- "mongodb:/data/db/"
volumes:
mongodb:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "$PWD/.storage/mongodb"
我已经删除了整个.storage/mongodb
目录,希望强制下一个docker-compose up
不要重复使用任何卷。
相反,我收到一个错误:泊坞窗缺少其体积数据。
Creating mongo ... error
ERROR: for mongo Cannot create container for service mongo: failed to mount local volume: mount <...>/.storage/mongodb:/var/lib/docker/volumes/mongodb/_data, flags: 0x1000: no such file or directory
我如何解决该问题:
docker-build up --build --force-recreate
。容器的构建和重新启动无效。
docker volume ls -q | while read id; do docker volume rm "$id"; done
。删除卷似乎也无济于事。
我认为docker能够从已删除的卷数据中恢复,因为第一个docker-compose up
的运行无需初始化.storage
目录。
基本上,我希望docker-compose up
工作。
了解这个问题也很神奇。
期待您的帮助!
答案 0 :(得分:0)
您是否尝试过使用-V选项进行docker-compose?
-V, --renew-anon-volumes Recreate anonymous volumes instead of retrieving
data from the previous containers.