1

我正在使用 docker-py 构建图像并创建容器。容器应包括端口绑定。这个想法是我将有多个客户端访问图像并能够打开多个容器。因此,我希望每次创建新容器时端口都会增加,例如: container1 port:5000 ;容器2端口:5001;ETC...

我将如何在 python 中实现这个功能?

谢谢

4

1 回答 1

0

事实上,在构建阶段,Dockerfile 只暴露了容器的内部端口。

当你运行一个新容器时,你会在 Docker 主机端口和容器暴露端口之间创建一个映射。

所以你只需要在调用容器创建 API 时增加你的运行端口映射:

import docker
docker_client = docker.Client(version="1.18", base_url="unix:///var/run/docker.sock")

def create_new_container(port):
    my_port_mappings = {}
    my_port_mappings[5000] = port

    host_config = docker_client.create_host_config(
        port_bindings=my_port_mappings
    )

    container = docker_client.create_container(
        image="my_image",
        detach=True,
        ports=my_port_mappings.keys(),
        name=container_name,
        host_config=host_config)

create_container(5000)
create_container(5001)
create_container(5002)
create_container(5003)
于 2016-02-16T15:24:46.740 回答