多个客户端访问应用程序时增加值

时间:2015-12-08 15:30:59

标签: python increment dockerpy

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

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

由于

1 个答案:

答案 0 :(得分: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)