簡體   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