docker-py 中 docker 端口容器的等效命令是什么

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

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

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

当通过 docker.DockerClient(base_url='unix://var/run/docker.sock')docker.from_env() 实例化 DockerClient 对象时,在构造函数内部 APIClient object is instantiated:

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

APIClient itself is inheriting a bunch of classes:

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

它继承的 类 之一是 ContainerApiMixin that exposes methods for interacting with containers, similar to docker container CLI。

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

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

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

资源source code