我如何获得主机networking以docker群模式工作
从最近合并到Docker 17.06候选版本的公关中,我们现在可以支持群集服务的主机联网。 但是,尝试一个非常类似的命令,我看到一个错误:
$ docker service create --name nginx-host --network host nginx Error response from daemon: could not find the corresponding predefined swarm network: network host not found
我正在运行17.06候选版本:
$ docker version Client: Version: 17.06.0-ce-rc2 API version: 1.30 Go version: go1.8.3 Git commit: 402dd4a Built: Wed Jun 7 10:07:14 2017 OS/Arch: linux/amd64 Server: Version: 17.06.0-ce-rc2 API version: 1.30 (minimum version 1.12) Go version: go1.8.3 Git commit: 402dd4a Built: Wed Jun 7 10:06:06 2017 OS/Arch: linux/amd64 Experimental: true
与我现在的docker现在支持的命令有什么不同?
与Docker开发者讨论后,这个特性需要swarm在升级到17.06之后初始化。 在群集初始化运行之前创build的主机和桥接networking不能与节点本地networking一起使用。 由于这是一个testing环境,重新创build了我的群:
$ docker swarm leave --force Node left the swarm. $ docker swarm init Swarm initialized: current node (***) is now a manager. ...
现在docker service create
命令的作品:
$ docker service create --name nginx-host --network host nginx i83udvgk0qga0k7toq4v7kh0x $ docker service ls ID NAME MODE REPLICAS IMAGE PORTS i83udvgk0qga nginx-host replicated 1/1 docker.io/library/nginx@sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268
要validation,我们检查容器内的networking接口:
$ docker ps | grep nginx 7024a2764b46 nginx "nginx -g 'daemon ..." 16 hours ago Up 16 hours nginx-host.1.i2blydombywzhz9zy06j8wrzf $ docker exec 702 ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 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: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether *** 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether *** ...