繁体   English   中英

使用Docker的外部静态IP

[英]External static IP with Docker

我正在尝试在Docker中建立一个网桥,该网桥被桥接到主机上的外部接口。

我在CentOS 7上运行Docker 10.11

这个博客很好地解释了...

https://forums.docker.com/t/public-accessible-ip-in-container-like-bridge-network-in-virtualbox/3668/5

这是我泊船的命令

我根据这里的命令创建了网桥:

 sudo docker network create \
    --driver bridge \
    --subnet=192.168.33.0/24 \
    --gateway=192.168.33.10 \
    --opt "com.docker.network.bridge.name"="docker1" \
    shared_nw

然后我将其添加到外部接口

sudo brctl addif docker1 eth1

我创建了一个容器,并在网络上为其分配了IP。

我可以从主机本身进行ping操作,但是创建docker网桥并不能使分配给网桥的ip或分配给容器的ip可以从网络上的另一台机器访问,同样,网络本身也无法访问。

我好像丢失了一些东西。 我以为网桥是假设允许容器使用与主机相同的子网。

IP地址

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master docker1 state UP qlen 1000
    link/ether 00:50:56:aa:41:10 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:feaa:4110/64 scope link 
       valid_lft forever preferred_lft forever
3: docker1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:d9:cc:37:ff brd ff:ff:ff:ff:ff:ff
    inet 192.168.33.10/24 scope global docker1
       valid_lft forever preferred_lft forever
    inet6 fe80::42:d9ff:fecc:37ff/64 scope link 
       valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:5c:8a:0f:57 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

brctl显示

bridge name bridge id       STP enabled interfaces
docker0     8000.02425c8a0f57   no      
docker1     8000.0242d9cc37ff   no      eth1

好...我想我发现自己做错了。 显然,在docker使用docker network create命令创建网桥之后,您必须将网桥添加到任何发行版的启动脚本中,以便随管理网络的任何内容一起启动。 在Ubuntu上,这需要将网桥添加到/ etc / network / interfaces文件,对于CentOS,这需要在/ etc / sysconfig / network-scripts文件夹中添加配置文件。

重新启动网络服务(或重新启动)后,一切似乎工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM