gpt4 book ai didi

docker - 向 docker 容器中的 lo 接口(interface)添加其他 IP

转载 作者:行者123 更新时间:2023-12-02 18:23:48 24 4
gpt4 key购买 nike

我需要在我的 docker 容器中的 loopback( lo ) 接口(interface)上设置别名。我不知道如何在 docker-compose 文件中执行此操作。

我需要将 127.0.0.2、127.0.0.3 和 127.0.0.4 添加到 lo界面。如何在 docker-compose 文件中做到这一点?

在我的 Mac 上,我可以执行类似 ifconfig lo0 alias 127.0.0.4 up 的操作但我不知道如何在 docker 容器中完成这项工作。

最佳答案

首先linux默认响应127.0.0.2-4为127.0.0.1/8分配给 lo界面。您可能不需要将地址“添加”到接口(interface),只需使用它们即可。

如果出于某种原因您需要接口(interface)上的特定地址,那么它需要进入 Docker 网络的内部。有一个名为 pipework 的实用程序处理这种类型的事情,这些步骤是从它的代码中提取的。

获取容器的PID

NSPID=$(docker inspect -f '{{ .State.Pid }}' <container>)

ip netns为这个容器工作
mkdir -p /var/run/netns
rm -f "/var/run/netns/$NSPID"
ln -s "/proc/$NSPID/ns/net" "/var/run/netns/$NSPID"

将IP地址添加到接口(interface)
ip netns exec $NSPID ip ad add 127.0.0.2/32 dev lo

确认新配置在那里
ip netns exec $NSPID ip ad sh lo

这允许您在容器网络命名空间中进行任何更改。

关于docker - 向 docker 容器中的 lo 接口(interface)添加其他 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39709727/

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