我怎么能将docker容器绑定到特定的外部接口

时间:2015-08-17 14:27:44

标签: docker

我必须使用网络接口eth0eth1

如何将所有docker容器绑定到eth1,并让所有网络流量通过eth1

进入并进入

感谢〜

更新

我尝试使用133.130.60.36绑定到eth1

但我仍然没有运气,我仍然将eth0 IP作为容器中的公共IP。网络流量不会通过eth1发布

➜  ~  docker run -d --name Peach_1 -p 133.130.60.36::9998 -ti sample/ubuntu-vnc-selenium-firefox

➜  ~  docker ps
CONTAINER ID        IMAGE                                 COMMAND                CREATED             STATUS              PORTS                                     NAMES
eb28f0d1c337        sample/ubuntu-vnc-selenium-firefox   "/opt/bin/run_sele_s   4 minutes ago       Up 4 minutes        5901/tcp, 133.130.60.36:32768->9998/tcp   Peach_1

➜  ~  docker exec -ti Peach_1 zsh

➜  /  curl ipecho.net/plain ; echo
133.130.101.114

1 个答案:

答案 0 :(得分:26)

以下是docker docs的内容

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/binding/

  

如果您想要更严格,只允许容器服务   通过主机上的特定外部接口联系   机器,你有两个选择。当您调用docker run时,您可以使用   -p IP:host_port:container_port或-p IP :: port来指定   一个特定绑定的外部接口。            或者,如果您始终希望Docker端口转发绑定到一个特定的IP地址,则可以编辑系统范围的Docker服务器   设置并添加选项--ip = IP_ADDRESS。记得重启你的   编辑此设置后,Docker服务器。