尝试从 docker 容器访问时,数据存储返回 503

Posted

技术标签:

【中文标题】尝试从 docker 容器访问时,数据存储返回 503【英文标题】:Datastore returns 503 when trying to access from a docker container 【发布时间】:2016-02-16 07:21:23 【问题描述】:

我有一个运行 Ubuntu 15.10 和 docker 1.10.1 的 Google Compute Engine 实例。当我尝试从实例上的 gcloud-python 访问 Google Datastore 时,一切正常。当我尝试从基于 python:3.5 的 docker 容器内部访问它时,我总是收到 503 错误。这是完整的堆栈跟踪:

>>> unit = client.get(key)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/site-packages/gcloud/datastore/client.py", line 262, in get
    deferred=deferred)
  File "/usr/local/lib/python3.5/site-packages/gcloud/datastore/client.py", line 303, in get_multi
    transaction_id=transaction and transaction.id,
  File "/usr/local/lib/python3.5/site-packages/gcloud/datastore/client.py", line 136, in _extended_lookup
    transaction_id=transaction_id,
  File "/usr/local/lib/python3.5/site-packages/gcloud/datastore/connection.py", line 200, in lookup
    _datastore_pb2.LookupResponse)
  File "/usr/local/lib/python3.5/site-packages/gcloud/datastore/connection.py", line 118, in _rpc
    data=request_pb.SerializeToString())
  File "/usr/local/lib/python3.5/site-packages/gcloud/datastore/connection.py", line 95, in _request
    raise make_exception(headers, content, use_json=False)
gcloud.exceptions.ServiceUnavailable: 503 Backend Error

谁能告诉我这里可能发生了什么?

【问题讨论】:

【参考方案1】:

对我来说,通过启用“Google Cloud Datastore API (v1beta2)”解决了这个问题。不要将其与“Google Cloud Datastore API”混淆。为此,您可以转到 API Manager 概览,搜索“datastore”选择“Google Cloud Datastore API (v1beta2)”,然后点击“启用”按钮。

【讨论】:

以上是关于尝试从 docker 容器访问时,数据存储返回 503的主要内容,如果未能解决你的问题,请参考以下文章

如何实现跨 Docker 主机存储?- 每天5分钟玩转 Docker 容器技术(73)

docker-跨主机存储

从未通过安全组的 Docker 容器中访问 RDS?

从 docker 容器执行时,SpringBoot RestTemplate 返回 403 禁止

尝试从Docker容器内部连接到DB时,“连接被拒绝”

无法从应用容器访问 postgres 容器