在GCE中使用docker机时,“validation证书错误”

当试图在我的机器上在GCE上创builddocker-machine时,出现以下错误:

$ docker-machine create --driver google \ --google-project $PROJECT_ID \ --google-zone $GOOGLE_ZONE \ --google-machine-type $GOOGLE_MACHINE_TYPE \ test-docker-machine Running pre-create checks... (test-docker-machine) Check that the project exists (test-docker-machine)) Check if the instance already exists Creating machine... (test-docker-machine) Generating SSH Key (test-docker-machine) Creating host... (test-docker-machine) Opening firewall ports (test-docker-machine) Creating instance (test-docker-machine) Waiting for Instance (test-docker-machine) Uploading SSH Key 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(systemd)... Installing Docker... Copying certs to the local machine directory... Copying certs to the remote machine... Setting Docker configuration on the remote daemon... Checking connection to Docker... Error creating machine: Error checking the host: Error checking and/or regenerating the certs: There was an error validating certificates for host "104.199.63.145:2376": dial tcp 104.199.63.145:2376: i/o timeout You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'. Be advised that this will trigger a Docker daemon restart which will stop running containers. 

我试图使用docker机器regenerate-certstestingbuild议,但它似乎没有任何更正:

 $ docker-machine regenerate-certs test-docker-machine Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y Regenerating TLS certificates Waiting for SSH to be available... Detecting the provisioner... Installing Docker... Copying certs to the local machine directory... Copying certs to the remote machine... Setting Docker configuration on the remote daemon... $ docker-machine env test-docker-machine Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "104.199.63.145:2376": dial tcp 104.199.63.145:2376: i/o timeout You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'. Be advised that this will trigger a Docker daemon restart which will stop running containers. 

而且,“docker-machine ls”显示机器的“Timeout”状态,但是“docker-machine ssh test-docker-machine”的ssh连接正常工作。

你能帮我弄清楚这个问题吗?

这里是我的安装细节:

 $ docker-machine version docker-machine version 0.8.2, build e18a919 $ docker version Client: Version: 1.11.0 API version: 1.23 Go version: go1.5.4 Git commit: 4dc5990 Built: Wed Apr 13 18:40:36 2016 OS/Arch: linux/amd64 Server: Version: 1.11.0 API version: 1.23 Go version: go1.5.4 Git commit: 4dc5990 Built: Wed Apr 13 18:40:36 2016 OS/Arch: linux/amd64 

最后提示:当我尝试从一个GCE主机相同,它完美的作品…

正如@NateQbuild议,解决scheme是附加docker机默认谷歌图像(这是ubuntu-1510-wily-v20151114在文档精简: https ://docs.docker.com/machine/drivers/gce/)与最新的Ubuntu映像通过使用:

 --google-machine-image https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ ubuntu-1604-xenial-v20161205 

在“docker-machine”命令行选项

在我的情况下,这是configuration错误的主机专用networking连接。 禁用新的并重新启用旧的连接,并在virtualbox上重新configurationboot2docker虚拟机来解决问题。 YMMV在谷歌虚拟机相应。