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 はログインすると無料で試せます(それより先はゴールド以上のプランで遊べます)。