Contents
Dockerレジストリとは
自分で作成したDockerイメージを保存するところ。インターネットの公開を目的としたパブリックリポジトリと許可したユーザだけがアクセスできるプライベートリポジトリがある。
DockerレジストリのサービであるDocker Hubにユーザ登録すれば利用できるが、無償利用の場合はプライベートリポジトリは1つまでである。
独自にレジストリ用のサーバを用意してプライベートリポジトリを使う方法もある。機会があればまた別のときに試したい。
Docker Hubのユーザ登録
下記のWEBサイトで必要事項を入れて「Sign Up」してユーザ登録します。コマンドでもできることを後から知った。(試してない)
リポジトリ登録
ブラウザから作成する手順は以下の通り。Dockerイメージをpushする際になければ自動で作られます。
1.「Create Repository」押す
2.「Enter Name」のところにリポジトリ名を入れる。今回はmyhttpdで作成してみます。Visibilityをpublicまたはprivateで選択。
Dockerイメージをpushする
Macのターミナルで操作します。
ログイン。初回はIDとパスワードを聞かれる。
$ docker login
Macローカルのイメージ確認。
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE myhttpd 1.0 ce85080cf5dd 21 seconds ago 319MB centos 7 5182e96772bf 8 days ago 200MB
myhttpd:1.0をDocker Hubにpushしてみます。リポジトリをDocker Hubと同じ<namespace>/<repository>[:tag]にする必要があるのでmyhttpdからタグを作成します。<namespace>はDocker IDです。最新のタグはlatestとするのが慣わしのようです。
$ docker tag myhttpd:1.0 <namespace>/myhttpd:latest
リポジトリが追加されていることを確認。イメージIDは同じです。
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE ******/myhttpd latest ce85080cf5dd 8 minutes ago 319MB myhttpd 1.0 ce85080cf5dd 8 minutes ago 319MB centos 7 5182e96772bf 8 days ago 200MB
docker pushコマンドでDocker Hubにpushします。
$ docker push <namespace>/myhttpd:latest
docker searchコマンドでリポジトリ確認できます。
$ docker search <namespace>/myhttpd:latest NAME DESCRIPTION STARS OFFICIAL AUTOMATED ******/myhttpd
ローカルのイメージを削除してDocker Hubからpullしてみる。
$ docker rmi <namespace>/myhttpd:latest $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE myhttpd 1.0 ce85080cf5dd 21 minutes ago 319MB centos 7 5182e96772bf 8 days ago 200MB $ docker pull <namespace>/myhttpd:latest $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE ******/myhttpd latest ce85080cf5dd 23 minutes ago 319MB myhttpd 1.0 ce85080cf5dd 23 minutes ago 319MB centos 7 5182e96772bf 8 days ago 200MB
最後に
Docker HubのWEBサイトでリポジトリを作ってからpushするとブラウザとdocker searchコマンドでどちらも検索できるけど、WEBサイトでリポジトリを作らないでpushするとイメージはアップロードできているけどブラウザとdocker searchコマンドどちらも検索で出てこない現象が発生しました。待てば出るだろうか・・・?
ちなみにDocker Hubにアップロードしたイメージを削除したい場合はDocker HubのWEBサイトで削除処理します。
おしまい