🔷
GitHub の個人アカウントに Docker イメージを PUSH して PULL してみた
Azure や AWS などのクラウドサービス上のコンテナレジストリに、コンテナイメージを保管するとなると、少なからず利用料金が発生します。
無料で使わせて頂いている GitHub には、コンテナイメージを管理できる、コンテナレジストリ機能があります。
そこで、クラウドサービスでコンテナイメージを利用した検証をする際の、検証用サンプルアプリのコンテナイメージを保管する場所として利用するため、使い方を簡易検証してみました。
検証用 Docker イメージをダウンロード
$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
707c94c90c59: Pull complete
Digest: sha256:b97e2a89d0b9e4011bb88c02ddf01c544b8c781acf1f4d559e7c8f12f1047ac3
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
$ docker images alpine
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 6f646456f898 17 hours ago 8.16MB
GitHub の PAT (classic) を環境変数に登録
write:packages スコープのみを有効にした PAT (classic) を用意して環境変数に登録します。
$ export CR_PAT=ghp_your_pat_here
GitHub のコンテナレジストリにログイン
$ echo $CR_PAT | docker login ghcr.io -u mnrst --password-stdin
Login Succeeded
検証用 Docker イメージを GitHub 用にタグ付け
$ docker tag alpine:latest ghcr.io/mnrst/alpine:latest
$ docker images ghcr.io/mnrst/alpine:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
ghcr.io/mnrst/alpine latest 6f646456f898 17 hours ago 8.16MB
GitHub コンテナレジストリに PUSH
$ docker push ghcr.io/mnrst/alpine:latest
The push refers to repository [ghcr.io/mnrst/alpine]
c1f4b58592d5: Pushed
latest: digest: sha256:23a385544a4e43b48a3deb5aca554fd005ea7d49e41829e31a1f5291b452796a size: 527
ローカルの Docker イメージを削除
$ docker rmi ghcr.io/mnrst/alpine:latest
Untagged: ghcr.io/mnrst/alpine:latest
Untagged: ghcr.io/mnrst/alpine@sha256:23a385544a4e43b48a3deb5aca554fd005ea7d49e41829e31a1f5291b452796a
GitHub コンテナレジストリから PULL
$ docker pull ghcr.io/mnrst/alpine:latest
latest: Pulling from mnrst/alpine
Digest: sha256:23a385544a4e43b48a3deb5aca554fd005ea7d49e41829e31a1f5291b452796a
Status: Downloaded newer image for ghcr.io/mnrst/alpine:latest
ghcr.io/mnrst/alpine:latest
$ docker images ghcr.io/mnrst/alpine:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
ghcr.io/mnrst/alpine latest 6f646456f898 17 hours ago 8.16MB
GitHub コンテナレジストリからログアウト
$ docker logout ghcr.io
Removing login credentials for ghcr.io
ブラウザで Docker イメージを確認
ダウンロード数も確認できます。
Discussion