3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

作成したDockerイメージを配布&共有する方法 <最終版>

Last updated at Posted at 2023-03-28

OrbStackというフレームワークを使い回しております。
https://qiita.com/naiveprince0507/items/090bb79cc85eea2d230f

その過程で、表題の件も含めて、色々と躓いたので、纏めておきます。

1
例えば、ローカルマシン環境で、Dockerイメージを作成して、それを他人に共有する際にどうするか? と言うだけの話なんだけど、色々と調べました。
私のMac PC環境では、以下の場所に、Imageが保存されます。

~/Library/Containers/com.docker.docker/Data/vms/0/

(参考) https://qiita.com/amuyikam/items/938781ff5898e654fd7c

ただ、ISOイメージみたいな単一ファイルで保存される訳ではなく、隠しファイルも含めた複数ファイルで構成されているので、簡単に、「Dockerイメージをメール転送しますね。」とか「ファイルサーバにアップしておきますね。」とは出来ないと理解してます。

2
そんな訳で、Docker Hubの登場です。
https://hub.docker.com/

Docker Hubと言う名前が秀逸。(ネットワークレイヤーで使うHubと言う名称は非常に分かりやすい。)
例えば、他人と共有する際は、自分でDocker Hubにアップして、そのリンクを相手にメールして、その相手がDocker Hubにアクセスして、DLすると言うイメージになります。

3
下記では、実際にやってみます。

<気を付ける点>
Docker Hubに登録してあるユーザー名に、Docker Imageの名前を変えないと、HubにPushできません。

例えば、aplpineと言う、DockerイメージをHubにアップしたいとします。

User_A@User_A-mac Downloads % docker images                                
REPOSITORY               TAG       IMAGE ID       CREATED        SIZE
alpine                   latest    d74e625d9115   6 weeks ago    7.46MB

普通に、下記の様にやると、エラーになります。

% docker push alpine:latest
denied: requested access to the resource is denied

🔳 手順1
原因は、下記サイトに書いている通りですが、Dockerイメージの名前を、Docker Hubのユーザー名に合わせる必要があります。
docker pushができないときの対処方法【M1 Mac Apple silicon】
https://hitori-sekai.com/tool/error-dokcerpush/

つまり、準備として、一旦、"alpine:latest" を、"Docker Hubユーザー名/apline"みたいに変更する必要があります。
ここでは、Docker Hubユーザー名は、"dockerhub_usrX"としております。

docker image tag alpine:latest dockerhub_usrX/alpine

ローカルで、この準備が終了した上で、もう一回、Imagesを見てみましょう!

User_A@User_A-mac Downloads % docker images                                
REPOSITORY               TAG       IMAGE ID       CREATED        SIZE
alpine                   latest    d74e625d9115   6 weeks ago    7.46MB
dockerhub_usrX/alpine           latest    d74e625d9115   6 weeks ago    7.46MB

この様に、dockerhub_usrX/alpineでイメージが作成されていることが確認できます。

🔳 手順2

Docker Hubにログインする。

User_A@User_A-mac ~ % docker login -u dockerhub_usrX
Password: 
Login Succeeded

🔳手順3
Pushする。

User_A@User_A-mac ~ % docker push dockerhub_usrX/alpine
The push refers to repository [docker.io/dockerhub_usrX/debian]
7806df21f4c4: Mounted from dockerhub_usrX/alpine 
latest: digest: sha256:97f195aa3c20b62ad004df27fd89cc771048317565c58da819a24705d74042 size: 529

と言うわけで成功です!

尚、別のマシンから、DLするには、下記の様にpullします。

User_A@User_A-mac java_code % docker pull dockerhub_usrX/alpine
Using default tag: latest
latest: Pulling from dockerhub_usrX/alpine
Digest: sha256:97f195aa3c20b62ad004df27fd89cc771048317565c58da819a24705d74042 size: 529
Status: Downloaded newer image for dockerhub_usrX/alpine:latest
```
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?