有没有办法停止单个docker服务并删除其分配的卷?

时间:2020-05-28 11:48:48

标签: docker docker-compose

我想知道(但搜索似乎表明不是这样)是否有一个docker命令停止单个服务并删除其分配的卷。相当于运行:
1-docker-compose stop <service name>
2-docker volume rm <volumes_attached_to_service>

我不在乎是否会删除该服务的图片。

2 个答案:

答案 0 :(得分:2)

答案:

根据您的评论:

我想停止单个docker服务并删除其分配的卷。

此命令应能解决问题:

docker-compose rm -f -s -v <service>

docker-compose rm -fsv <service>

-f将在此处强制执行并且不要求确认,-s将确保在删除容器之前已将其停止,而-v将删除附加到该服务的卷。

>

答案 1 :(得分:0)

如果容器已停止但仍存在,则为否。您必须先删除使用该卷的所有容器,然后再删除该卷。即使使用docker volume rm --force也无法解决问题。

我在文档中找不到具体提及的内容,但是this issue讨论了缺少与该主题相关的文档以及一些解决方法。

但是,在某些情况下,您可以停止并删除具有相关卷的容器:

  • docker-compose down --volumes,所有要删除的卷都在使用的docker-compose.yml文件中列出
  • 如果使用匿名卷,则在容器停止时使用docker run --rmdocker-compose run --rm运行容器将导致容器和附加的匿名卷被删除

在其他情况下,您将必须使用单独的命令删除容器并删除其卷。

相关问题