docker push¶
補足説明¶
docker push
を使うと、イメージを Docker Hub レジストリや、自分で作成したレジストリで共有できるようになります。
有効なイメージ名とタグ名についての詳しい情報は、 docker image tag リファレンスを参照してください。
docker image push
プロセスを停止するには、ターミナルで実行中に CTRL-c
を押すと、push 処理を中断します。
docker push 中に表示する
レジストリの認証情報は docker login で管理します。
並列アップロード¶
デフォルトの Docker デーモンは、同時に5つのイメージレイヤを送信します。ネットワーク帯域幅が狭くてタイムアウトを引き起こす場合は、デーモンのオプション --max-concurrent-uploads
によって、この数を減らせます。詳細は デーモンのドキュメント をご覧ください。
コマンドの使用例は、以下の 使用例のセクション をご覧ください。
オプション¶
名前, 省略形 |
デフォルト |
説明 |
---|---|---|
|
リポジトリにあるタグ付きイメージを全て送信 |
|
|
|
イメージ検証を省略 |
|
冗長な出力をしない |
使用例¶
新しいイメージをレジストリに 送信 ¶
始めに新しいイメージに保存するため、コンテナ ID を探して( docker container ls
を使います)、それから、このコンテナを新しいイメージ名にコミットします。イメージ名に使えるのは a-z0-9-Z.
のみなので、気を付けます。
$ docker container commit c16378f943fe rhel-httpd:latest
それから、イメージ ID を使ってレジストリにイメージを送信します。この例では、レジストリのホスト名は registry-host
で、ポート 5000
をリッスンしています。ここに送信するためには、イメージのタグに対し、ホスト名や IP アドレス、レジストリのポート番号を追加します。
$ docker image tag rhel-httpd:latest registry-host:5000/myadmin/rhel-httpd:latest
$ docker image push registry-host:5000/myadmin/rhel-httpd:latest
これが正しく動作しているかどうかを確認しましょう。
$ docker image ls
一覧に rhel-httpd
と registry-host:5000/myadmin/rhel-httpd
の両方が見えるでしょう。
イメージのタグ全てを送信¶
-a
(または --all-tags
)オプションを使うと、ローカル・イメージのタグ全てを送信します。
以下の例は、イメージに対して複数のタグを作成し、それから、タグ全てを Docker Hub に送信します。
$ docker image tag myimage registry-host:5000/myname/myimage:latest
$ docker image tag myimage registry-host:5000/myname/myimage:v1.0.1
$ docker image tag myimage registry-host:5000/myname/myimage:v1.0
$ docker image tag myimage registry-host:5000/myname/myimage:v1
これで、先ほどのイメージは、今は複数の名前の下に新しいタグが付いています。
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
myimage latest 6d5fcfe5ff17 2 hours ago 1.22MB
registry-host:5000/myname/myimage latest 6d5fcfe5ff17 2 hours ago 1.22MB
registry-host:5000/myname/myimage v1 6d5fcfe5ff17 2 hours ago 1.22MB
registry-host:5000/myname/myimage v1.0 6d5fcfe5ff17 2 hours ago 1.22MB
registry-host:5000/myname/myimage v1.0.1 6d5fcfe5ff17 2 hours ago 1.22MB
次の例では、送信時に --all-tags
オプションを付けると、 registry-host:5000/myname/myimage
イメージの全てのタグが送信されます。
$ docker image push --all-tags registry-host:5000/myname/myimage
The push refers to repository [registry-host:5000/myname/myimage]
195be5f8be1d: Pushed
latest: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1.0: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1.0.1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527