gpt4 book ai didi

docker-compose 如何在 ip 别名接口(interface)上运行具有绑定(bind) 1 对 1 端口的容器

转载 作者:行者123 更新时间:2023-12-02 20:16:37 27 4
gpt4 key购买 nike

我的接口(interface)上有很多 IP:inet 10.100.131.115/24 brd 10.100.131.255 scope global br0
valid_lft forever preferred_lft forever
inet 10.100.131.120/24 brd 10.100.131.255 scope global secondary br0
valid_lft forever preferred_lft forever
inet 10.100.131.121/24 brd 10.100.131.255 scope global secondary br0
valid_lft forever preferred_lft forever
inet 10.100.131.122/24 brd 10.100.131.255 scope global secondary br0
valid_lft forever preferred_lft forever

docker -compose.yml:version: '2'
services:
app:
image: app
network_mode: "bridge"
volumes:
- /root/docker/app/project/:/root/:ro
ports:
- "7999:7999"
network_mode: "bridge"

如果我打开单个容器一切都很好:docker-compose ps
Name Command State Ports

docker_app_1 /bin/sh -c uwsgi --ini wsg ... Up 0.0.0.0:7999->7999/tcp

但是当我尝试扩展我的应用程序时出现错误(_ofc,因为 docker_app_1_ 已经使用了 7999):docker-compose scale app=2警告:“app”服务指定主机上的端口。
如果在单个主机上为此服务创建多个容器,则端口将发生冲突。
创建并启动 docker_app_2 ... 错误

错误:对于 docker_app_2 无法启动服务应用程序:b'driver 未能在端点 docker_app_2 上编程外部连接(xxxxxxxxxxxxxxxxx ...):

Bind for 0.0.0.0:7999 failed: port is already allocated'



我可以告诉 docker-compose 使用来自使用 IP alising 的接口(interface)的所有 IP 吗?
我需要来自接口(interface)的 1 个 IP:7999 -> docker 容器:7999

最佳答案

您可以将特定 IP 映射到容器,而不是默认的 0.0.0.0。但是,这不是扩展单个服务。

services:
whatever:
ports:
- '10.100.131.121:7999:7999/tcp'
another:
ports:
- '10.100.131.122:7999:7999/tcp'

关于docker-compose 如何在 ip 别名接口(interface)上运行具有绑定(bind) 1 对 1 端口的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42270764/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com