【问题标题】:set docker container ip to global ip将 docker 容器 ip 设置为全局 ip
【发布时间】:2017-09-08 18:40:49
【问题描述】:

我目前正在尝试为容器设置一个 IP,该容器可以被网络中的任何其他机器访问。我的 docker 主机所在的网络是 9.158.143.0/24,网关是 9.158.143.254。 尝试将网络类型为网桥的子网 9.158.143.0/24 中的 ip(任何免费)设置为网桥。它不起作用(甚至无法在 docker 主机中 ping 容器)。 然后创建一个用户定义的网络,子网 9.10.10.0/24 和网络驱动程序作为网桥。创建的容器是可 ping 的,但只能在 docker 主机内。 有什么方法可以从网络中的所有机器(不仅仅是 docker 主机)访问这个容器。 PS:我不想暴露端口。(更改路由有帮助吗..我对网络知之甚少)

我也尝试了使用 macvlan 驱动程序的用户定义网络。在这种情况下,我可以从其他机器 ping 容器,但不能从容器所在的 docker 主机 ping 容器

【问题讨论】:

  • 暴露端口是docker的方式。或者使用主机网络。
  • 我无法将 ip 添加到主机网络中的容器。
  • 您可以将 ip 添加到主机网络中的主机(然后将容器中的服务绑定到该 ip)。

标签: docker networking


【解决方案1】:

为此,您需要:

1- 在您的本地网络上为此容器指定一个新地址;

2- 将此地址配置为您的 docker 引擎主机上的辅助地址;

3- 在 docker 引擎主机上的本地接口之间启用路由;

4- 使用 iptables 将连接到这个新地址的连接重定向到您的容器。

这是一个例子:

我们假设:

  • 您的容器实例名为myinstance

  • 您的 LAN 网络接口名为 eth0

  • 您已选择局域网上可用的网络地址192.168.1.178

因此,您需要执行以下操作:

  • 启动您的容器(在本例中,我们启动一个 Web 服务器):

    docker run --rm -t -i --name=mycontainer httpd:2.2-alpine

  • 启用本地 IP 路由:

    sysctl -w net.ipv4.ip_forward=1

  • 为您的容器添加辅助地址:

    ip addr add 192.168.1.178/24 dev eth0

  • 将此地址的连接重定向到您的容器:

    首先,找到你的容器本地地址:

    % docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mycontainer

    172.17.0.2

    现在,将此本地地址与 iptables 一起使用:

    iptables -t nat -A PREROUTING -i eth0 -d 192.168.1.178/32 -j DNAT --to 172.17.0.2

最后,您可以通过从 LAN 上的任何其他主机访问 http://192.168.1.178/ 来检查它是否正常工作。

【讨论】:

  • 嗨,iptables 命令似乎不起作用..我尝试了这些步骤,但无法通过 192.168.1.178 连接。是我们在 docker 中使用端口暴露时(内部)使用的路由命令。
  • 您尝试连接到 192.168.1.178 的主机的 IP 地址是什么?
  • 9.158.143.52(与docker主机相同的子网(我的docker host-9.158.143.51))..有什么方法可以检查是否添加了iptables规则??
  • 正如我在回答中所说,您需要在您的局域网上选择一个可用的 IP。您的局域网似乎是 9.158.143.0/24。因此,请将我的示例中的值 192.168.1.178 替换为您局域网上的可用 IP,然后重试。
  • 嗨亚历山德罗感谢帮助命令工作 root@nc143052-kraklab:~# iptables -t nat -A DOCKER -d 9.158.143.61/24 ! -i docker0 -j DNAT --to-destination 172.17.0.2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
  • 1970-01-01
  • 1970-01-01
  • 2016-12-02
  • 2013-09-15
  • 2015-03-12
  • 2014-10-21
相关资源
最近更新 更多