docker / docker-compose中的'down'和'rm'有什么区别?

时间:2019-05-17 18:42:03

标签: docker docker-compose

docker-compose downdocker-compose rmdocker rm的文档阅读起来非常相似。有什么不同?以及您何时会使用另一种?

2 个答案:

答案 0 :(得分:2)

  • docker-compose down ”:停止并删除包含所有网络(而不是卷)的容器,您应该添加-v选项。
  • docker-compose rm ”:仅删除已停止的容器,而不删除正在运行的容器,您应该添加选项-s以便能够删除正在运行的容器

现在,“ docker-compose rm ”和“ docker rm ”之间的区别在于,当您进行更改以影响docker-compose.yml中的容器时文件,您无法使用“ docker-compose rm”删除由旧docker-compose.yml创建的容器,因此在这种情况下,您应该使用“ docker rm”来执行此操作。

如果还是不明白,可以尝试以下示例:

  1. 使用“ docker-compose up”运行容器
  2. 现在停止容器而不使用“ docker-compse stop”将其删除
  3. 在docker-compose.yml中更改容器的名称
  4. 运行“ docker-compose up”->将使用新名称创建一个新容器。
  5. 现在,如果尝试使用“ docker-compose rm old_container_name”删除旧容器,则会出现此错误:无此类服务。
  6. 在这种情况下,您只能使用“ docker container rm old_container_name”删除旧容器。

答案 1 :(得分:1)

rm-删除停止的服务容器。

down-停止容器并删除up创建的容器,网络,卷和映像。