使用 Python SDK 等待 Docker 容器变为 运行
Wait for Docker container to become running using Python SDK
使用 Python 的 docker
模块,您可以像这样启动一个分离容器:
import docker
client = docker.from_env()
container = client.containers.run(some_image, detach=True)
我需要等待这个容器running
(即container.status == 'running'
)。如果创建容器后立即查看状态,会报这个,意思是还没有准备好:
>>> container.status
"created"
API确实提供了一个wait()
方法,但这只等待像exit
和removed
这样的终止状态:https://docker-py.readthedocs.io/en/stable/containers.html#docker.models.containers.Container.wait.
我如何才能等到我的容器 running
对 Python 使用 docker
?
您可以使用带超时的 while 循环
import docker
from time import sleep
client = docker.from_env()
container = client.containers.run(some_image, detach=True)
timeout = 120
stop_time = 3
elapsed_time = 0
while container.status != 'running' and elapsed_time < timeout:
sleep(stop_time)
elapsed_time += stop_time
continue
使用 Python 的 docker
模块,您可以像这样启动一个分离容器:
import docker
client = docker.from_env()
container = client.containers.run(some_image, detach=True)
我需要等待这个容器running
(即container.status == 'running'
)。如果创建容器后立即查看状态,会报这个,意思是还没有准备好:
>>> container.status
"created"
API确实提供了一个wait()
方法,但这只等待像exit
和removed
这样的终止状态:https://docker-py.readthedocs.io/en/stable/containers.html#docker.models.containers.Container.wait.
我如何才能等到我的容器 running
对 Python 使用 docker
?
您可以使用带超时的 while 循环
import docker
from time import sleep
client = docker.from_env()
container = client.containers.run(some_image, detach=True)
timeout = 120
stop_time = 3
elapsed_time = 0
while container.status != 'running' and elapsed_time < timeout:
sleep(stop_time)
elapsed_time += stop_time
continue