version: "3"
services:
mongo:
image: mongo
working_dir: /c/data/
ports:
- 27017:27017
deploy:
replicas: 1
volumes:
- /c/data/:/data/db
我尝试了上面的堆栈文件,但是收到了退出码14错误,请给我解决这个问题的方法。
version: "3"
services:
mongo:
image: mongo
working_dir: /c/data/
ports:
- 27017:27017
deploy:
replicas: 1
volumes:
- /c/data/:/data/db
我尝试了上面的堆栈文件,但是收到了退出码14错误,请给我解决这个问题的方法。
如果存在旧版本MongoDB的数据,请删除/c/data/
下的所有内容。
-d
标志。 - Austin Browndocker system prune
没问题,Kew批准 =)
*请小心!它会清除所有东西!!
这取决于您如何启动服务,例如使用:
docker-compose up -d
(在Windows上)
而不是docker-compose up
。 这样,您就可以通过终端控制调用docker-compose down
,MongoDB进程可以正确终止。
docker-compose
而没有使用-d
选项,您仍然可以发出docker-compose down
命令。 - Dims对我来说,有帮助的是删除已挂载的主机目录,然后使用docker volume rm {容器名称\ID}
删除该卷。
确保在compose中正确编写卷,例如:
...
database:
container_name: database
image: mongo
ports:
- '27017:27017'
volumes:
- db:/data/db
...
volumes:
db:
/Users/{your account}/data
文件夹来解决此问题。您应该能够通过前往Finder
-> 前往文件夹
-> 并搜索~/Users/
来找到该文件夹。之前我尝试但未成功的其他解决方法包括:停止和删除所有mongo容器、删除所有mongo镜像、从Docker Desktop中清理/清除数据以及卸载和重新安装Docker。
working_dir
指的是容器内部的目录,而不是主机上的目录。您需要确保/c/data/
可以在容器运行的节点上创建(这是一个相当奇怪的路径...)。通常最好避免在使用堆栈时使用主机卷。 - Mihai