docker push の使い方

レジストリに送る

書き方

docker push レジストリ/名前:タグ
docker pull レジストリ/名前:タグ

イメージをレジストリ(イメージの倉庫)に送ります。このシミュレーターでは、registry コンテナを localhost:5000 で動かして使います。パスワードの要るレジストリには、先に docker login します。

よく使うオプション

オプション意味
-a / --all-tagsその名前の全部のタグを送る
-q進み具合を出さない

例

$ docker push localhost:5000/myapp:1.0The push refers to repository [localhost:5000/myapp]
5f70bf18a086: Pushed
d4fc045c9e3a: Pushed
1.0: digest: sha256:8a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f9 size: 1366

手元のレジストリにイメージを送ります。送る前に、名前の先頭がレジストリの場所になるよう docker tag しておきます。

$ docker push myname/myapp:1.0

Docker Hub の自分の場所に送ります。先に docker login が要ります。

$ docker pull localhost:5000/myapp:1.0

別のサーバーから、送ったイメージを取ってきます。

よくある間違い・注意

  • 「denied: requested access to the resource is denied」は、ログインしていないか、名前の先頭が自分のアカウントやレジストリになっていません。
  • すでにレジストリにある層は送られず「Layer already exists」と出ます。変わった層だけが送られます。

実際に打って練習する

Docker コースの Lv43「倉庫に預ける レジストリ」で覚えます(第6章 港の実践)。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜7 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。

Docker コマンド一覧(使い方と例)へ戻る