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

Blu*_*eft 9 docker docker-compose

docker-compose downdocker-compose rm和的文档docker rm读起来非常相似。有什么不同?您什么时候会使用其中一种而不是其他?

小智 7

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

现在,“ docker-compose rm ”和“ docker rm ”之间的区别在于,当您在 docker-compose.yml 文件中进行影响容器的更改时,您无法删除旧 docker-compose 创建的容器。 yml 使用“docker-compose rm”,因此在这种情况下您应该使用“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”删除旧容器。