0

我正在尝试优雅地停止所有容器。所以我想给每个容器 60 秒。我看到你可以这样做:

docker stop --time=60 $(docker container ls -q)

--time=60每个容器的时间还是所有容器都只有 60 秒?

  • 例如:如果一个容器需要 59 秒才能停止……这是否意味着下一个容器只需要 1 秒才能停止?
  • 如果所有容器都获得 60 秒...那么我将执行 bash for 循环并在每个容器上执行 docker stop ... 以确保它们每个都获得 60 秒。
4

1 回答 1

0

--time=60每个容器都考虑该参数。

Docker 客户端在后台执行 HTTP 请求。当您传递多个这样的参数时:

docker stop --time=60 $(docker container ls -q)

Docker 客户端将发送与您的 Shubshel​​l 返回的值一样多的请求docker container ls -q,每个请求都有--time自己的请求。

现在我们知道 docker 会向“docker api”发出请求,我们可以查看API 文档并注意到没有端点可以停止或杀死大量容器,每次调用只有一个。

于 2021-04-28T17:46:26.313 回答