見出し画像

【完全保存版】Dockerイメージをリモートのレジストリにアップロードしてみよう!

0 はじめに

こちらの記事は、この動画を参考に作っています。

1 Docker Imageの作成

1 Dockerfileの作成

まずは、下のように、「Dockerfile」を作成します。

FROM alpine
CMD [ "echo", "Hello World" ]

FROM alpineの部分で、「alpine」イメージを使用することを指定してます。

「CMD」部分で「Hello World」と出力されるように指定しています。

2 imageのビルドを行う

次に、こちらのコマンドで、イメージビルドを行います。(名前は任意です。)

docker build -t hello .

tオプションで、タグ(名前)をつけています。

また、「.」カレントディレクトリ「Dockerfile」を使用することを指定しています。

下のように、「hello」という名前の「image」ができました。

3 imageを実行する

では、そのイメージを実行してみましょう。

docker run hello

下のように、実行ができました。

2 GithubのPATの作成について

次に、GithubPATを作成しましょう。

作成方法は、こちらの第二章をご参照ください。

違いとしては、こちらの「write:packages」「delete:packages」の権限を与えます。

(この二つだけで大丈夫です。)

すると、PATができました。

こちらの情報は決して人に見せることなく、安全に保管してください。

3 Githubへのプッシュの実行について

1 imageへのタグ付けについて

次に、「image」新しいタグ付けを行います。

ghcr.io"GitHub Container Registry" の略です。

GitHubが提供するコンテナイメージホスティングサービスのドメインです。

docker tag <image名> ghcr.io/<ユーザー名>/hello:latest

ちなみに、私は下でタイポしてしまったので、後で修正しました。

下のように、新しい名前「image」を作成することができました。

2 Githubへのプッシュ(まだ認証していないので、失敗することの確認)

では、このイメージをGithubプッシュしましょう。

docker push ghcr.io/ytakahashi2020/hello

すると、このようなエラーが出ます。

これは、まだ認証を行っていないので、当然の結果ではあります。

私のGithubのパッケージ突然誰かがpushをしてきたので、エラーになったということです。

(ちなみに、私はタイポしたため、このようなエラーが出ていました。)

3 認証の実行

では、こちらのコマンドで認証を行います。

<your PAT>の部分にPATを入れます。

「ghcr.io」にログインを行っています。

「--password-stdin」「echo」からの標準入力を受け入れています。

echo <your PAT>| docker login ghcr.io -u USERNAME --password-stdin

下のように、「Login Succeeded」となり、ログインに成功したようです。

4 Githubへのプッシュの実行

では、改めて、プッシュを行ってみましょう。

下のように、「ghcr.io/ytakahashi2020/hello」で参照できることが確認できました。

「github」を確認すると、「Packages」の中に格納されていることが確認できました。

中を見てみると、下のように、格納されていることが確認できました。

今回は以上です。

サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊