当前位置: 首页 > 面试题库 >

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

巴博耘
2023-03-14
问题内容

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

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

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

提前致谢!


问题答案:

我假设您想为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/



 类似资料:
  • 问题内容: 我正在尝试为容器提供静态IP地址。我了解我必须创建一个自定义网络。我创建了它,并且桥接接口在主机(Ubuntu 16.x)上已启动。容器从该子网获取IP,但不是我提供的静态IP。 这是我的docker-compose.yml: 容器得到10.5.0.2和10.5.0.3,而不是5和6。 问题答案: 请注意,除非您做的事情允许容器网络从外部路由到内部(例如,macvlan),否则我不建议

  • 我正在尝试向容器提供静态IP地址。我知道我必须创建一个自定义网络。我创建它并且桥接接口在主机(Ubuntu 16. x)上。容器从此子网获取IP,但不是我提供的静态。 这是我的docker-compose.yml: 容器10.5.0.2和10.5.0.3,而不是5和6。

  • 5. IP地址与路由 IPv4的IP地址长度为4字节,通常采用点分十进制表示法(dotted decimal representation)例如0xc0a80002表示为192.168.0.2。Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要

  • 问题内容: 如何获取此容器内的容器ip地址? ‘docker inspect $ hostname …’不适合,因为我不将/var/run/docker.sock主机文件共享到容器。 问题答案: 由于IP地址位于/ etc / hosts的第一行中,因此您可以在容器中执行awk命令,该命令显示/ etc / hosts的第一行的第一个单词

  • 问题内容: 我在Docker网站上找到了这些信息 可以运行,启动,停止,移动和删除Docker容器。 据我所知,可以移动Docker映像,而不能移动Docker容器。但是上面的信息清楚地位于标题“ Docker容器”的下方。 因此,我想知道是否可以移动容器(如果不能移动,那么“ Docker容器可以移动”是什么意思)。 谢谢! 问题答案: 您可以使用 参见 https://docs.docker.

  • 本文向大家介绍Docker 获取Docker机器的IP地址,包括了Docker 获取Docker机器的IP地址的使用技巧和注意事项,需要的朋友参考一下 示例 要获取docker机器的IP地址,您可以使用以下命令: