コンテナイメージの共有 -DockerイメージをDocker Hubに登録-

コンテナイメージの共有(Ship)

Dockerでは、作成したDockerイメージを他のホストで共有するためのship機能を備えています。イメージを格納する場所をレジストリと呼ばれています。代表的なレジストリには、Dockerが提供しているDocker Hubがあります。

Docker Hubに登録すると、ユーザーごとのレジストリを持つことができ、イメージを格納することができます。イメージには複数バージョン管理することも可能です。

Docker Hubに登録する

Docker Hubに登録するには、まずDocker HUBのアカウントを作成します。

Docker Hubにアクセスします。

Docker Hub

必要事項を入力して「Sign Up」

Docker Hub

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 Hub

Docker Hubからイメージをダウンロード

公開されたイメージは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

 

関連記事