Bos*_*osh 32 volumes docker docker-compose
如果我有一个docker-compose文件,例如:
version: "3"
services:
postgres:
image: postgres:9.4
volumes:
- db-data:/var/lib/db
volumes:
db-data:
Run Code Online (Sandbox Code Playgroud)
...然后docker-compose up创建一个命名的卷db-data.有没有办法通过docker-compose?删除此卷?如果它是一个匿名卷,那么docker-compose rm -v postgres就可以了.但就目前而言,我不知道如何在db-data不恢复docker命令的情况下移除卷.感觉这应该可以在docker-composeCLI中实现.我错过了什么吗?
her*_*erm 43
__CODE__删除所有附加的卷.查看文档
小智 40
这将删除docker-compose中定义的所有 容器 、网络、卷和图像。
docker-compose down -v --rmi all
Run Code Online (Sandbox Code Playgroud)
“-v”适用于所有卷
“--rmi all”适用于所有图像
jam*_*air 32
没有办法通过docker-composecli来删除特定的命名卷。相反,这可以使用dockercli来实现。请参阅文档。
使用docker volume ls查找特定卷的名称。
使用 删除卷docker volume rm VOLUME_NAME。您将需要使用该卷停止并删除容器。
一个示例方法:
# Stop and remove container's using the target volume
docker-compose stop NAME_OF_CONTAINER
# We need the force flag, "-f", as the container is still bound to the volume
docker-compose rm -f NAME_OF_CONTAINER
# Next find your volume name in the following list
docker volume ls
# Finally remove the volume
docker volume rm VOLUME_NAME
Run Code Online (Sandbox Code Playgroud)
我和你有同样的问题,除了我想放弃我的 grafana 容器的工作状态,同时让其他容器运行,这些容器运行分离(即 sudo docker-compose up -d)。这是我想出的程序:
sudo docker-compose ps
sudo docker-compose stop grafana
sudo docker-compose rm --force grafana
sudo docker volume rm metricsmonitoring_grafana_data
sudo docker-compose up --force-recreate -d grafana
Run Code Online (Sandbox Code Playgroud)
我不知道(没有进一步玩)如何最好地确定要删除的 docker 卷的名称。
这是在 docker-compose 1.18.0 版上
| 归档时间: |
|
| 查看次数: |
12227 次 |
| 最近记录: |