Docker for MacでさくっとDockerレジストリ

Contents


Dockerレジストリとは

自分で作成したDockerイメージを保存するところ。インターネットの公開を目的としたパブリックリポジトリと許可したユーザだけがアクセスできるプライベートリポジトリがある。
DockerレジストリのサービであるDocker Hubにユーザ登録すれば利用できるが、無償利用の場合はプライベートリポジトリは1つまでである。
独自にレジストリ用のサーバを用意してプライベートリポジトリを使う方法もある。機会があればまた別のときに試したい。

 

Docker Hubのユーザ登録

下記のWEBサイトで必要事項を入れて「Sign Up」してユーザ登録します。コマンドでもできることを後から知った。(試してない)

https://hub.docker.com/

 

リポジトリ登録

ブラウザから作成する手順は以下の通り。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サイトで削除処理します。

おしまい