繁体   English   中英

docker-py 中 docker port CONTAINER 的等效命令是什么

[英]What is the equivalent command for docker port CONTAINER in docker-py

我试图使用 docker-py 自动化一个 docker 服务器。 需要使用python检查主机URL是否正在ping通。 因此,我需要在 python 中为docker port container一个等效命令
docker port container_id

import docker
client = docker.from_env()
print(client.port('c03ebfb53a7d', 80))

当实例化DockerClient对象时,无论是通过docker.DockerClient(base_url='unix://var/run/docker.sock')还是docker.from_env() ,内部构造函数APIClient对象都会被实例化

def __init__(self, *args, **kwargs):
    self.api = APIClient(*args, **kwargs)

APIClient本身继承了一堆类

class APIClient(
    requests.Session,
    BuildApiMixin,
    ConfigApiMixin,
    ContainerApiMixin,
    DaemonApiMixin,
    ExecApiMixin,
    ImageApiMixin,
    NetworkApiMixin,
    PluginApiMixin,
    SecretApiMixin,
    ServiceApiMixin,
    SwarmApiMixin,
    VolumeApiMixin)

它继承的类之一是ContainerApiMixin ,它公开了与容器交互的方法,类似于docker container CLI。

如您所见,您可以通过 CLI 执行的所有操作都可以通过DockerClient对象中的api对象访问。

所以,你的问题的答案是:

client.api.port('<container_id>', <port>)

资源源代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM