Dockerでは、作成したDockerイメージを他のホストで共有するためのship機能を備えています。イメージを格納する場所をレジストリと呼ばれています。代表的なレジストリには、Dockerが提供しているDocker Hubがあります。
Docker Hubに登録すると、ユーザーごとのレジストリを持つことができ、イメージを格納することができます。イメージには複数バージョン管理することも可能です。
Docker Hubに登録するには、まずDocker HUBのアカウントを作成します。
Docker Hubにアクセスします。
必要事項を入力して「Sign Up」
Sign Upをクリックすると、メールが届くのでVerifyします。これでアカウントが作成されましたので、docker push
コマンドでイメージをレジストリに格納してみます。
まず、すでに作成したイメージに対して、Docker Hubにイメージの格納先を知らせるためにdockerアカウント名とイメージのタグを指定してイメージを作成します。コマンドはdocker tag
コマンドを使用します。
❯ docker tag cd226ad8e4c1 itbook/docker_demo:latest
❯ docker images
REPOSITORY TAG IMAGE ID CREATED itbook/docker_demo latest cd226ad8e4c1 3 days ago 204MB
まず、DockerHubにコマンドラインからログインします。
❯ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: アカウント名
Password: パスワード
Login Succeeded
イメージをDocker Hubにプッシュします。
❯ docker push itbook/docker_demo:latest
The push refers to repository [docker.io/itbook/docker_demo]
2fc087e0acda: Pushed
224e33e450d0: Pushed
8670cc2d3cf3: Pushed
de3f310d2753: Pushed
1e565b797e2e: Pushed
e6d43aa13c97: Pushed
6c39281845dd: Pushed
77008e118980: Pushed
6cb741cb00b7: Pushed
f36b28e4310d: Pushed
91d23cf5425a: Pushed
latest: digest: sha256:f2353d12dd9dfb7482d278060df8a198458cfdfe7079c2561e333309912a570c size: 2606
問題なくプッシュされて、イメージが公開されました。
公開されたイメージはdocker pull
コマンドを使ってローカルにダウンロードすることができます。
まず、ローカルにあるイメージを削除しておきます。
❯ docker rmi itbook/docker_demo
Untagged: itbook/docker_demo:latest
Untagged: itbook/docker_demo@sha256:f2353d12dd9dfb7482d278060df8a198458cfdfe7079c2561e333309912a570c
❯ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker pull
コマンドを使って、Docker Hubからイメージをダウンロードします。
❯ docker pull itbook/docker_demo:latest
latest: Pulling from itbook/docker_demo
Digest: sha256:f2353d12dd9dfb7482d278060df8a198458cfdfe7079c2561e333309912a570c
Status: Downloaded newer image for itbook/docker_demo:latest
docker.io/itbook/docker_demo:latest
❯ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
itbook/docker_demo latest cd226ad8e4c1 3 days ago 204MB
同じように、docker pull
コマンドを使えば、他ユーザーが公開しているイメージをダウンロードすることも可能です。
❯ docker pull mongo:latest
latest: Pulling from library/mongo
2746a4a261c9: Pull complete
4c1d20cdee96: Pull complete
0d3160e1d0de: Pull complete
c8e37668deea: Pull complete
fc3987a82b4c: Pull complete
c75f139e0836: Pull complete
4acc9c8680b4: Pull complete
fb02df30d947: Pull complete
ae725ef3d2ce: Pull complete
e30f54ed6b43: Pull complete
bca9e535ddb8: Pull complete
9c3edad81b2a: Pull complete
6dbcf78fe5ae: Pull complete
Digest: sha256:7a1406bfc05547b33a3b7b112eda6346f42ea93ee06b74d30c4c47dfeca0d5f2
Status: Downloaded newer image for mongo:latest
docker.io/library/mongo:latest
❯ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
itbook/docker_demo latest cd226ad8e4c1 3 days ago 204MB
mongo latest a0e2e64ac939 3 weeks ago 364MB