python - 在 Ubuntu 中设置 Google Cloud Managed VM 时出现 Docker Daemon 连接错误

标签 python google-compute-engine google-cloud-platform

我正在尝试根据以下手册在 Ubuntu 中安装 Google Cloud Managed VM:[1] , [2]

我已经按照 Docker installation guide 安装了 Docker .

使用以下命令运行 Docker:sudo docker -H tcp://127.0.0.1:2376 -d

我已经根据 HTTPS Docker guide 创建了证书 key .

我的环境变量:

  • DOCKER_HOST=tcp://:2376
  • DOCKER_TLS_VERIFY=1
  • DOCKER_CERT_PATH=/home/eyalev/ca

当我运行 gcloud preview app setup-managed-vms

我得到一个错误:

https://gist.github.com/eyalev/aab86463bc63f4319d5c

Traceback (most recent call last):
File "/home/eyalev/Software/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py",
 line 153, in <module> main()   File "/home/eyalev/Software/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py",
 line 149, in main _cli.Execute()   File "/home/eyalev/Software/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py",
 line 381, in Execute post_run_hooks=self.__post_run_hooks, kwargs=kwargs)   File "/home/eyalev/Software/google-cloud-sdk/./lib/googlecloudsdk/calliope/frontend.py",
 line 274, in _Execute pre_run_hooks=pre_run_hooks, post_run_hooks=post_run_hooks)   File "/home/eyalev/Software/google-cloud-sdk/./lib/googlecloudsdk/calliope/backend.py",
 line 887, in Run result = command_instance.Run(args)   File "/home/eyalev/Software/google-cloud-sdk/lib/googlecloudsdk/appengine/app_commands/setup_managed_vms.py",
 line 37, in Run setup_registry.SetupRegistry()   File "/home/eyalev/Software/google-cloud-sdk/./lib/googlecloudsdk/appengine/lib/images/setup_registry.py",
 line 32, in SetupRegistry timeout=config.DOCKER_D_REQUEST_TIMEOUT)   File "/home/eyalev/Software/google-cloud-sdk/platform/google_appengine/google/appengine/tools/docker/containers.py",
 line 663, in NewDockerClient 'Couldn\'t connect to the docker daemon using the specified ' google.appengine.tools.docker.containers.DockerDaemonConnectionError:

Couldn't connect to the docker daemon using the specified environment
variables. Please check the environment variables DOCKER_HOST,
DOCKER_CERT_PATH and DOCKER_TLS_VERIFY are set correctly. If you are
using boot2docker, make sure you have run "$(boot2docker shellinit)"

有什么我想念的吗?

最佳答案

我终于得到了gcloud preview app setup-managed-vms在 ubuntu 上工作。这是我必须做的:

  1. 获取 docker 1.3.0,而不是 1.3.1。 sudo apt-get install docker.io在我的机器上安装了旧版本的 docker,所以我必须先删除它。但是curl -sSL https://get.docker.com/ubuntu/ | sudo sh安装版本 1.3.1,这也不起作用。我在 https://get.docker.com/ubuntu/ 重播了脚本中的每一行但我不得不更改最后一行 apt-get install -y lxc-dockerapt-get install -y lxc-docker-1.3.0官方文档提到应用引擎不适用于 boot2docker 1.3.1,但我认为他们的意思是它不适用于 docker 1.3.1。

  2. 我无法将 127.0.0.1 作为我的主机名。我不得不使用 localhost创建 CA 和服务器证书时。

  3. 我必须导出 DOCKER_HOST=tcp://localhost:2376 (注意使用 localhost)以及 DOCKER_TLS_VERIFY=1DOCKER_CERT_PATH=<path>

  4. 我将/etc/default/docker 中的 DOCKER_OPTS 设置为 "--tlsverify --tlscacert=<path>/ca.pem --tlscert=<path>/server-cert.pem --tlskey=<path>/server-key.pem -H=0.0.0.0:2376"

gcloud preview app setup-managed-vms现在有效,但我还没有得到 gcloud preview app run让我的 go 应用程序正常工作。

关于python - 在 Ubuntu 中设置 Google Cloud Managed VM 时出现 Docker Daemon 连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26842682/

相关文章:

python - Pandas 用基于第二列的另一列的方式替换 NaNs

python - 在 Selenium 中获取文件选择器对话框的 ID 或其他句柄

python - OpenCV深度学习人脸检测断言函数 'cv::dnn::ConvolutionLayerImpl::getMemoryShapes'错误

google-compute-engine - 具有计算实例管理员权限的 GCE 服务帐户

javascript - 有没有办法通过 JavaScript 使用 Google AutoML?

tomcat - netty-tcnative 不适用于 Google Cloud Vision API

python - 获取服务器时间并在 python 中使用它

hadoop - Hadoop 2.4.1和适用于Hadoop的Google Cloud Storage连接器

kubernetes - Google(GKE)中的Kubernetes集群正在扩展节点

google-cloud-platform - Dataproc运行失败: INVALID_ARGUMENT: User not authorized to act as service account