在docker容器中添加额外的IP到lo接口
我需要在docker容器的loopback( lo
)接口上设置别名。 我无法弄清楚如何在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
接口。 您可能不需要将地址“添加”到接口,只需使用它们即可。
如果由于某种原因,您需要接口上的特定地址,则需要进入Dockernetworking的内部。 有一个称为pipework
的实用程序处理这种types的事情,这些步骤是从代码中解除的。
获取容器的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地址添加到接口
ip netns exec $NSPID ip ad add 127.0.0.2/32 dev lo
确认新的configuration在那里
ip netns exec $NSPID ip ad sh lo
这允许您在容器networking命名空间中进行任何更改。