Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何将静态IP地址设置为通过weave overlay网络运行到群集的容器?_Docker_Docker Swarm_Weave - Fatal编程技术网

Docker 如何将静态IP地址设置为通过weave overlay网络运行到群集的容器?

Docker 如何将静态IP地址设置为通过weave overlay网络运行到群集的容器?,docker,docker-swarm,weave,Docker,Docker Swarm,Weave,TL;DR:Swarm1.0.0中存在的缺陷,在Swarm1.1.0中解决 在四个swarm Agent群集上,一个自定义覆盖网络通过以下方式运行: 但是,通过此命令及其输出,我们可以看到一个问题: user@swarm-master:~$ swarm-docker run --rm -it --net=custom-weave --ip=192.168.0.5 debian:jessie bash -c "ip addr show" 1: lo: <LOOPBACK,UP,LOW

TL;DR:Swarm
1.0.0
中存在的缺陷,在Swarm
1.1.0
中解决

在四个swarm Agent群集上,一个自定义覆盖网络通过以下方式运行:

但是,通过此命令及其输出,我们可以看到一个问题:

user@swarm-master:~$ swarm-docker run --rm -it --net=custom-weave --ip=192.168.0.5 debian:jessie bash -c "ip addr     show"
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    [ . . ]
74: ethwe0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1410 qdisc noqueue state UP group default 
    link/ether ee:c2:9c:6c:c3:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/16 scope global ethwe0
       valid_lft forever preferred_lft forever
    inet6 fe80::ecc2:9cff:fe6c:c36c/64 scope link tentative 
       valid_lft forever preferred_lft forever
76: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN group default 
    [ . . ]
user@swarm-master:~$swarm docker run--rm-it--net=custom weave--ip=192.168.0.5 debian:jessie bash-c“ip地址秀”
1:lo:mtu 65536 qdisc noqueue状态未知组默认值
[ . . ]
74:ethwe0:mtu 1410 qdisc noqueue状态向上组默认值
链路/以太ee:c2:9c:6c:c3:6c brd ff:ff:ff:ff:ff:ff:ff
inet 192.168.0.2/16范围全局ethwe0
永远有效\u lft首选\u lft永远有效
inet6 fe80::ecc2:9cff:fe6c:c36c/64范围链接暂定
永远有效\u lft首选\u lft永远有效
76:eth1:mtu 1500 qdisc noqueue状态关闭组默认值
[ . . ]
设置用户定义的
--net
选项以及
--ip=192.168.0.5
。虽然容器预期将其
ethwe0
接口IP地址设置为192.168.0.5,但实际设置为192.168.0.2

问题:这个过程有什么问题?
没什么,只是自从版本
1.1.0
以来解决了一个bug。正如上面所述,这是Swarm
1.0.0
中的一个bug。Swarm
1.1.0

解决了这个错误。我已经尝试了
--net
--ip
选项,用于手动创建的网络,该网络带有docker附带的桥接驱动程序,工作正常(实际上仍然如此)。由于这个
--ip
相对较新,可能weave插件没有更新,或者根本没有以正确的方式处理这个问题……您在swarm中尝试过吗?当我尝试在swarm中使用默认覆盖时,它也不起作用。不,没有尝试swarm,只是启动了3个容器(此外-我使用了
--为每个容器添加主机
user@swarm-master:~$ swarm-docker run --rm -it --net=custom-weave --ip=192.168.0.5 debian:jessie bash -c "ip addr     show"
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    [ . . ]
74: ethwe0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1410 qdisc noqueue state UP group default 
    link/ether ee:c2:9c:6c:c3:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/16 scope global ethwe0
       valid_lft forever preferred_lft forever
    inet6 fe80::ecc2:9cff:fe6c:c36c/64 scope link tentative 
       valid_lft forever preferred_lft forever
76: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN group default 
    [ . . ]