我使用docker-py构建图像并创建容器。 容器应包括端口绑定。我的想法是,我将有多个客户端访问图像,并能够打开多个容器。因此,我希望每次创建新容器时端口都会递增,例如:container1 port:5000; container2端口:5001;等...
我如何在python中实现这个功能?
由于
答案 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)