是否使用Docker-compose删除命名卷?

qrjkbowd  于 2023-02-11  发布在  Docker
关注(0)|答案(4)|浏览(156)

如果我有一个docker-compose文件,如:

version: "3"
services:
  postgres:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/db
volumes:
  db-data:

...然后执行docker-compose up会为db-data创建一个命名卷。是否有办法通过docker-compose删除此卷?如果它是一个匿名卷,则docker-compose rm -v postgres可以完成此操作。但就目前情况而言,我不知道如何删除db-data卷而不恢复到docker命令。感觉这应该可以从docker-compose CLI中实现。我错过了什么吗?

qzlgjiam

qzlgjiam1#

docker-compose down -v

删除所有连接的卷。请参见docs

mzsu5hc0

mzsu5hc02#

无法使用docker-compose cli删除特定的命名卷。相反,可以使用docker cli实现此操作。请参见docs
使用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
pgpifvop

pgpifvop3#

2022年1月更新:

这将删除docer-compose中定义的**所有****************************************************************************************************************************************************************************************************************************************

docker-compose down -v --rmi all
  • "-v"用于所有卷*
  • "--rmi all"用于所有图像*
0sgqnhkj

0sgqnhkj4#

我遇到了和你一样的问题,除了我想放弃我的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

我不知道(没有进一步发挥)如何最好地确定名称的docker卷删除。
这是在docker-compose版本1.18.0上

相关问题