一尘不染

为Docker容器提供可路由的IP地址

docker

我在ubuntu
14.04上运行它,并将其设置docker0为静态ip,然后将其从公共ip路由到防火墙。我试图将我的后端API设置为在docker容器中运行,并且被两件事弄糊涂了。

1.)我如何将docker0ip 映射到容器的ip,以便docker0知道如何将传入的数据包发送到容器(如果可能,动态地)。

2.)如果尚未以这种方式完成,该如何做到这一点,以使我不必在每次重新运行该Docker容器时都进行设置?

提前致谢!


阅读 397

收藏
2020-06-17

共1个答案

一尘不染

我假设您想为Docker外部的Docker容器分配IP。

首先,创建一个新IP并将其分配给主机的接口(我们假设您的接口名为eth0。

$> ip addr add 10.0.0.99/8 dev eth0

现在,当您启动容器时,指定该地址并将其链接到您的docker容器:

$> docker run -i -t --rm -p 10.0.0.99:80:8080 base

-p参数将使docker创建一个iptables NAT规则,该规则会将与目标10.0.0.99:80匹配的所有流量都引导到端口8080上的docker容器。

如果您需要自动化该过程并进行扩展,请查阅以下资源:https :
//github.com/jpetazzo/pipework

Docker文档是一个不错的开始:https//docker.github.io/engine/userguide/networking/

2020-06-17