【问题标题】:Is it possible to stop a docker container after other docker container inside the same network exits?在同一网络内的其他 docker 容器退出后,是否可以停止 docker 容器?
【发布时间】:2021-09-28 07:59:12
【问题描述】:

我有三个 docker 容器。第一个容器是一个 Wordpress 容器,它启动一个 wordpress 实例。第二个容器是从selenium/standalone-chrome 图像创建的 selenium 服务器容器,它应该通过 UI 交互对 wordpress 进行一些初始设置。我有一个 python 脚本,其中包含要发送到 selenium 服务器的所有命令。我在 python 容器中运行这个脚本作为第三个容器。所有容器都是使用docker-compose 生成的,并且在同一个网络中,因此可以进行通信。

一旦 python 容器运行完脚本,它就会退出,但是 selenium 服务器和 wordpress 容器会继续运行。完成脚本后,我也想停止 selenium 服务器容器,但保持 wordpress 容器运行。

我曾想过在 python 容器中运行一个脚本作为入口点,它首先执行脚本,然后发出命令来停止另一个容器,但为此我猜 python 容器内部也应该有 docker。所以,我认为这行不通。有没有简单的方法来实现这一点?

【问题讨论】:

  • 编辑问题以获取更多详细信息。我没有提到第三个容器,我想继续运行,而只想杀死 selenium 容器。
  • @NavjotSingh 重复的第三个答案有什么问题?似乎通过一些小的调整来满足您的需求。
  • @super 刚刚编辑了问题。我想保持其中一个容器活着,所以基本上我不想停止一切。
  • @NavjotSingh 我的评论是关于您的编辑。第三个答案显示了一种适合您的方法。只需将docker-compose stop 替换为docker-compose stop selenium

标签: python docker selenium docker-compose


【解决方案1】:

命令

docker ps --filter=name='my-container'

会告诉你有趣的容器是否还在这里

例子

docker ps

显示许多容器

但你可以过滤

docker ps --filter=name='cadvisor' CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 984f35929991 google/cadvisor "/usr/bin/cadvisor -…" 3 years ago Up 2 hours 0.0.0.0:1234->8080/tcp cadvisor `

所以一个脚本可以测试两个容器的存在,只有一个,然后做一个

docker stop xxx

需要时

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多