При создании экземпляра объекта 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, доступно через api
объект внутри DockerClient
объекта.
Итак, ответ на ваш вопрос: :
client.api.port('<container_id>', <port>)
Ресурс : исходный код