3

google/docker-registry コンテナは、Google Cloud Storage からイメージをプッシュ/プルするためだけに存在しますか? 私は現在、Git で彼らの指示に従っており、docker-registry コンテナーを実行していますが、バケットからプルできないようです。

私はそれを始めました:

sudo docker run -d -e GCS_BUCKET=mybucket -p 5000:5000 google/docker-registry

.tar Docker イメージが Cloud Storage の mybucket/imagename.tar に保存されています。ただし、実行すると:

sudo docker pull localhost:5000/imagename.tar

結果は次のとおりです。

2014/07/10 19:15:50 HTTP コード: 404

私はこれを間違っていますか?

4

2 に答える 2

4

docker pushイメージ tar を手動でコピーするのではなく、レジストリに登録する必要があります。

あなたがイメージしている場所から:

docker run -ti --name gcloud-config google/cloud-sdk \
  gcloud auth login
docker run -ti --volumes-from gcloud-config google/cloud-sdk \
  gcloud config set project <project>
docker run -d -e GCS_BUCKET=bucketname -p 5000:5000 \
  --volumes-from gcloud-config google/docker-registry
docker tag imagename localhost:5000/imagename
docker push localhost:5000/imagename

次に、イメージを実行する場所から (例: GCE):

docker run -d -e GCS_BUCKET=bucketname -p 5000:5000 google/docker-registry
docker run localhost:5000/imagename
于 2014-07-11T18:15:09.657 に答える
0

google/docker-registry を使用する場合、Google バケットを使用するように事前設定されています。

どのストレージでも機能するはずですが (構成がオーバーライドされている場合)、その目的は Google インフラストラクチャで使用することです。

docker ホスト間でイメージを手動で移動する docker レジストリーがない場合は、エクスポートされたイメージの tar ファイルを使用する必要があります。

tar ファイルをバケットにアップロードしないでください。

画像をアップロードするには、docker-registry コンテナーにプッシュする必要があります。これにより、画像がバケットに保存されます。

Docker レジストリ コンテナを実行している Google クラウド コンピューティング インスタンスは、バケットへの書き込み/読み取りアクセス権を持つように構成する必要があります。

于 2015-01-02T12:05:57.700 に答える