TLDR:2018-11 仍然不可能;使用docker-compose down或docker-compose run --rm
我想给这个问题提供一个更新的答案,因为已经快三年了。这将节省其他人的搜索。
我有同样的问题,这是我找到的解决方法(包括问题本身中的一种):
它执行以下操作:
停止容器并删除up创建的容器,网络,卷和映像。
默认情况下,删除的唯一内容是:
- Containers for services defined in the Compose file
- Networks defined in the networks section of the Compose file
- The default network, if one is used
永远不会删除定义为外部的网络和卷。
尽管您不能在docker-compose.yml其中声明它,但是可以避免麻烦。特别是在数量和网络方面。
--rm-运行后删除容器。在分离模式下被忽略。
针对服务运行一次性命令。例如,以下命令启动Web服务并运行bash作为其命令。
docker-compose run web bash
[...]运行传递的命令将覆盖服务
配置中定义的命令。
[...]该命令不会创建服务配置中指定的任何端口。这样可以防止端口与已经打开的端口发生冲突。如果确实要创建服务的端口并将其映射到主机,请指定--service-ports标志
-f,--force不要要求确认删除