Docker-Machine和Swarm后面的代理

我正在设法在我的虚拟集群上build立docker群。 首先,我尝试用docker-machine在本地主机上安装swarm-master。

问题是机器需要使用代理来访问发现令牌。

首先我要问一个带有swarm创build的令牌。 为此,我创build了这个文件:

$cat /etc/systemd/system/docker.service.d/http_proxy.conf [Service] Environment="HTTP_PROXY=http://**.**.**.**:3128/" "HTTPS_PROXY=http://**.**.**.**:3128/" "NO_PROXY=localhost,127.0.0.1,192.168.2.100,192.168.2.101,192.168.2.102,192.168.2.103,192.168.2.104,192.168.2.105,192.168.2.106,192.168.2.107,192.168.2.108,192.168.2.194,192.168.2.110" 

我重新启动了守护进程,并且可以拉出群集映像:

 $docker run -e "http_proxy=http://**.**.**.**:3128/" -e "https_proxy=http://**.**.**.**:3128/" swarm create b54d8665e72939d2c611d8f9e99521b4 

在我想创buildswarm主机之后:

 $docker-machine create -d generic --generic-ip-address localhost \ --engine-env HTTP_PROXY=http://192.168.254.10:3128/ \ --engine-env HTTPS_PROXY=http://192.168.254.10:3128/ \ --engine-env NO_PROXY=localhost,192.168.2.102,192.168.2.100 \ --swarm --swarm-master --swarm-discovery \ token://b54d8665e72939d2c611d8f9e99521b4 swarm-master 

结果:

 Running pre-create checks... Creating machine... Waiting for machine to be running, this may take a few minutes... Machine is running, waiting for SSH to be available... Detecting operating system of created instance... Provisioning created instance... Copying certs to the local machine directory... Copying certs to the remote machine... Setting Docker configuration on the remote daemon... Configuring swarm... To see how to connect Docker to this machine, run: docker-machine env swarm-master 

我在join和pipe理容器的日志中有错误(我认为错误来了,因为容器不处理代理):

 $docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6fbf967cdb60 swarm:latest "/swarm join --advert" 53 seconds ago Up 52 seconds 2375/tcp swarm-agent 8b176116989e swarm:latest "/swarm manage --tlsv" 54 seconds ago Up 53 seconds 2375/tcp, 0.0.0.0:3376->3376/tcp swarm-agent-master $docker logs 6fbf967cdb60 time="2015-11-17T19:37:21Z" level=info msg="Registering on the discovery service every 20s..." addr="localhost:2376" discovery="token://b54d8665e72939d2c611d8f9e99521b4" time="2015-11-17T19:37:41Z" level=error msg="Post https://discovery.hub.docker.com/v1/clusters/b54d8665e72939d2c611d8f9e99521b4?ttl=60: dial tcp: lookup discovery.hub.docker.com on 8.8.4.4:53: read udp 172.17.0.3:46576->8.8.4.4:53: i/o timeout" $docker logs 8b176116989e time="2015-11-17T19:37:20Z" level=info msg="Listening for HTTP" addr="0.0.0.0:3376" proto=tcp time="2015-11-17T19:37:40Z" level=error msg="Discovery error: Get https://discovery.hub.docker.com/v1/clusters/b54d8665e72939d2c611d8f9e99521b4: dial tcp: lookup discovery.hub.docker.com on 8.8.4.4:53: read udp 172.17.0.2:44241->8.8.4.4:53: i/o timeout" 

这是通用驱动程序的错误吗?

其他一些信息:

 # docker version Client: Version: 1.9.0 API version: 1.21 Go version: go1.4.2 Git commit: 76d6bc9 Built: Tue Nov 3 17:29:38 UTC 2015 OS/Arch: linux/amd64 Server: Version: 1.9.0 API version: 1.21 Go version: go1.4.2 Git commit: 76d6bc9 Built: Tue Nov 3 17:29:38 UTC 2015 OS/Arch: linux/amd64 # docker info Containers: 2 Images: 8 Server Version: 1.9.0 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 12 Dirperm1 Supported: true Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.16.0-4-amd64 Operating System: Debian GNU/Linux 8 (jessie) CPUs: 2 Total Memory: 1000 MiB Name: swarm-master ID: 6SDE:CQRA:NM6W:TY2H:4DPB:O4YO:IGRT:33AA:OKQP:M6UK:EMSR:H4WR WARNING: No memory limit support WARNING: No swap limit support Labels: provider=generic 

谢谢 :)

问题是无法使用docker机器在同一台机器上创buildswarm-master。 所以我创build了两个VM,一个是docker-machine(和mh-keystore),另一个是swarm-master。

在localhost上创buildmh-keystore:

 $docker-machine create -d generic --generic-ip-address localhost mh-keystore $docker $(docker-machine config mh-keystore) run -d \ -p "8500:8500" \ -h "consul" \ progrium/consul -server -bootstrap $docker ps 

将swarm-master安装到其他机器上

 $ docker-machine create \ -d generic --generic-ip-address 192.168.2.100 \ --swarm --swarm-image="swarm" --swarm-master \ --swarm-discovery="consul://192.168.2.103:8500" \ swarm-master 

代理商的创build:

 $ docker-machine create \ -d generic --generic-ip-address 192.168.2.102 \ --swarm \ --swarm-discovery="consul://192.168.2.103:8500" \ swarm-agent-00