使用docker-machine创buildDigitalOcean液滴时出错

不知道这是一个DigitalOcean问题或docker-machine但我尝试创build一个液滴DO反复得到这个错误

 $ docker-machine create --driver digitalocean --digitalocean-access-token=$TOKEN --digitalocean-region=sgp1 --digitalocean-image=ubuntu-14-04-x64 --digitalocean-size "1gb" staging Running pre-create checks... Creating machine... (staging) Creating SSH key... (staging) Creating Digital Ocean droplet... (staging) Waiting for IP address to be assigned to the Droplet... Waiting for machine to be running, this may take a few minutes... Detecting operating system of created instance... Waiting for SSH to be available... Detecting the provisioner... Provisioning with ubuntu(upstart)... Installing Docker... Copying certs to the local machine directory... Copying certs to the remote machine... Error creating machine: Error running provisioning: Get https://api.digitalocean.com/v2/droplets/17900941: dial tcp: lookup api.digitalocean.com on 127.0.1.1:53: read udp 127.0.0.1:40376->127.0.1.1:53: i/o timeout 

我在Ubuntu 14.04上使用以下docker软件包

 $ docker-machine version docker-machine version 0.7.0, build a650a40 $ docker version Client: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 21:47:50 2016 OS/Arch: linux/amd64 Server: Version: 1.11.1 API version: 1.23 Go version: go1.5.4 Git commit: 5604cbe Built: Wed Apr 27 00:34:20 2016 OS/Arch: linux/amd64 

错误是: read udp 127.0.0.1:40376->127.0.1.1:53: i/o timeout

看起来像试图使用localhost作为域名服务器,没有DNS服务器正在运行。 你的/etc/resolv.conf文件是什么样的?

有两种方法可以解决这个问题:在本地机器上调出DNS服务器,或者更好的办法是修复你的DNS服务器设置,并使用例如8.8.8.8作为域名服务器。

不是100%肯定,但我解决了以下问题。 我在virtualbox机器上开发,当我开始工作时我运行了这个命令

 eval "$(docker-machine env local)" 

所以我的docker-machine env被设置为一些variables,因为在同一个terminal上运行的docker-machine create造成DNSparsing问题。

开始一个新的terminal ,并能够创build一个DigitalOcean液滴没有任何问题。