我的 python 脚本用于docker-py启动一个 docker 容器,如下所示:
client = docker.from_env()
result = client.containers.run(
image="my-prog-image:latest",
command=["/etc/my-prog/configs.ini"],
auto_remove=True,
network_mode="host",
)
Run Code Online (Sandbox Code Playgroud)
正如记录的docker-py:容器,该client.containers.run(...)方法返回容器。如何检索my-prog在容器内运行返回的退出代码?
result.wait() 应该等待容器运行完成,然后返回其退出代码。
但是,您可能会遇到一些麻烦,因为您指定auto_remove=True但未指定detach=True. run()withoutdetach=True将运行容器完成,然后该auto_remove=True选项将删除容器,此时状态代码不再存在。您可以明确地拆分这些步骤:
client = docker.from_env()
container = client.containers.run(
image="my-prog-image:latest",
command=["/etc/my-prog/configs.ini"],
detach=True,
)
result = container.wait()
container.remove()
Run Code Online (Sandbox Code Playgroud)
(在 Docker CLI 术语中,您已经完成docker run --rm ...,然后尝试使用 找到容器的结果docker ps -a,但容器不见了;我建议将其更改为docker run -d ...without --rm,检查docker ps输出,然后手动创建docker rm容器。实际上,甚至还有一个docker waitCLI命令,但很少使用。)
| 归档时间: |
|
| 查看次数: |
2584 次 |
| 最近记录: |