我想知道(但搜索似乎表明不是这样)是否有一个docker命令停止单个服务并删除其分配的卷。相当于运行:
1-docker-compose stop <service name>
2-docker volume rm <volumes_attached_to_service>
我不在乎是否会删除该服务的图片。
答案 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 --rm
或docker-compose run --rm
运行容器将导致容器和附加的匿名卷被删除在其他情况下,您将必须使用单独的命令删除容器并删除其卷。