gpt4 book ai didi

linux - Docker可以在运行容器时自动将IP地址添加到主机吗

转载 作者:太空狗 更新时间:2023-10-29 11:17:40 28 4
gpt4 key购买 nike

我在 hetzner.de 上有一台服务器,大约有 16 个公共(public) IPv4 地址。

现在我正在运行这样的容器:

sudo docker run -d --name test6 -it -p 5.1.2.3:80:80 sunebeck/apache-php 

这最初会产生这个错误:

Error starting userland proxy: listen tcp 5.1.2.3:80: bind: cannot assign requested address.

通过在主机上手动添加 ip 地址来解决这个问题:

ip addr add 5.1.2.3 dev eth0

之后它按预期工作,服务在 5.1.2.3 上作为端口 80 公开。然而,手动管理它有点麻烦。

Docker 能否根据需要自动添加/删除主机的 IP 地址?

最佳答案

Docker 本身无法做到这一点。除了少数异常(exception)(例如 Docker 在启动容器时创建的 iptables 规则),容器不能修改主机的网络环境。

解决这个问题最简单的方法可能就是在主机启动时将所有地址分配给接口(interface),例如使用/etc/sysconfig/network-scripts/ifcfg-<interface>。在 Fedora/CentOS/RHEL 上,或 /etc/network/interfaces在 Debian/Ubuntu 上。

这样,在 Docker 开始运行之前,地址将在接口(interface)上可用,并且您的端口绑定(bind)将正常工作。

关于linux - Docker可以在运行容器时自动将IP地址添加到主机吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40198619/

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