Python 在Ubuntu中设置Google云管理VM时出现DockerDaemonConnectionError

Python 在Ubuntu中设置Google云管理VM时出现DockerDaemonConnectionError,python,google-compute-engine,google-cloud-platform,Python,Google Compute Engine,Google Cloud Platform,我正试图根据以下手册在Ubuntu中安装谷歌云管理虚拟机: 我已经安装了Docker 运行Docker时使用:sudo Docker-Htcp://127.0.0.1:2376 -d 我已经根据创建了证书密钥 我的环境变量: DOCKER_HOST=tcp://:2376 DOCKER_TLS_VERIFY=1 DOCKER_CERT_PATH=/home/eyalev/ca 当我运行gcloud预览应用程序设置托管虚拟机时 我得到一个错误: 回溯(最近一次呼叫最后一次): 文件“/hom

我正试图根据以下手册在Ubuntu中安装谷歌云管理虚拟机:

我已经安装了Docker

运行Docker时使用:
sudo Docker-Htcp://127.0.0.1:2376 -d

我已经根据创建了证书密钥

我的环境变量:

  • DOCKER_HOST=tcp://:2376
  • DOCKER_TLS_VERIFY=1
  • DOCKER_CERT_PATH=/home/eyalev/ca
当我运行
gcloud预览应用程序设置托管虚拟机时

我得到一个错误:

回溯(最近一次呼叫最后一次):
文件“/home/eyalev/Software/googlecloudsdk//lib/googlecloudsdk/gcloud/gcloud.py”,
第153行,在main()文件“/home/eyalev/Software/google cloud sdk//lib/googlecloudsdk/gcloud/gcloud.py”中,
第149行,在主文件“/home/eyalev/Software/google cloud sdk//lib/googlecloudsdk/calliope/cli.py”中,
第381行,在Execute post_run_hooks=self._post_run_hooks,kwargs=kwargs)文件“/home/eyalev/Software/google cloud sdk//lib/googlecloudsdk/calliope/frontend.py”,
第274行,在文件“/home/eyalev/Software/google cloud sdk//lib/googlecloudsdk/calliope/backend.py”中的“执行预运行挂钩=预运行挂钩,后运行挂钩=后运行挂钩”,
第887行,在Run result=command_instance.Run(args)文件“/home/eyalev/Software/google cloud sdk/lib/googlecloudsdk/appengine/app_commands/setup_managed_vms.py”中,
第37行,运行setup_registry.SetupRegistry()文件“/home/eyalev/Software/google cloud sdk//lib/googlecloudsdk/appengine/lib/images/setup_registry.py”,
第32行,在SetupRegistry timeout=config.DOCKER_D_REQUEST_timeout)文件“/home/eyalev/Software/google cloud sdk/platform/google_appengine/google/appengine/tools/DOCKER/containers.py”中,
NewDockerClient中的第663行“无法使用指定的”google.appengine.tools.docker.containers.DockerDaemonConnectionError:
无法使用指定的环境连接到docker守护程序
变量。请检查环境变量DOCKER_主机,
DOCKER\u证书路径和DOCKER\u TLS\u验证设置正确。如果你是
使用boot2docker,确保已运行“$(boot2docker shellinit)”

我有什么遗漏吗?

不确定这是否有用,但您可以尝试使用更明确的DOCKER\u主机:

DOCKER_HOST=tcp://localhost:2376

我终于让
gcloud预览应用程序安装管理的vms
在ubuntu上工作。以下是我必须做的:

  • 获取docker 1.3.0,而不是1.3.1<代码>sudo apt get install docker.io在我的机器上安装了旧版本的docker,所以我必须先删除它。但是
    curl-sSLhttps://get.docker.com/ubuntu/ |sudo sh安装1.3.1版,该版本也不起作用。我在
    https://get.docker.com/ubuntu/
    但我不得不将最后一行
    apt get install-y lxc docker
    更改为
    apt get install-y lxc-docker-1.3.0
    官方文档提到应用程序引擎不能与boot2docker 1.3.1一起工作,但我认为他们的意思是docker 1.3.1不起作用

  • 我无法使用127.0.0.1作为主机名。在创建ca和服务器证书时,我必须使用
    localhost

  • 我必须导出
    DOCKER\u主机=tcp://localhost:2376
    (注意localhost的使用)以及
    DOCKER\u TLS\u VERIFY=1
    DOCKER\u CERT\u PATH=

  • 我在/etc/default/DOCKER中将DOCKER\u OPTS设置为
    “--tlsverify--tlscacert=/ca.pem--tlscert=/server-cert.pem--tlskey=/server-key.pem-H=0.0.0.0:2376”


  • gcloud preview app setup managed vms
    现在可以工作了,但是我还没有运行
    gcloud preview app
    让我的go app工作。

    我从
    不稳定的
    (Debian)安装了Docker 1.3.2,补充道

    /etc/default/docker
    ,并设置

    DOCKER_HOST=tcp://localhost:2375
    
    让它工作

    此网站包含如何为CoreOS(systemd)配置默认Docker设置的信息

    有人提到Docker 1.3.2应该解决Docker 1.3.1的问题。您是否必须使用权限执行任何操作?我必须使用sudo运行所有cli命令,我预计gcloud客户端也可能在这方面存在问题。
    DOCKER_OPTS="-d -H fd:// -H tcp://localhost:2375"
    
    DOCKER_HOST=tcp://localhost:2375