ローカル Docker レジストリのデプロイ

DockerBeginner
オンラインで実践に進む

はじめに

Docker レジストリは、Docker イメージを保存、管理、配布するためのプラットフォームです。Docker Hub などのクラウドベースのサービスは手軽に利用できますが、利用制限やセキュリティポリシー上の制約が生じることがあります。このチャレンジでは、独自のローカル Docker レジストリを構築する手順を体験します。これにより、イメージの管理権限を完全に掌握し、ネットワーク環境に依存しない開発フローを実現できます。

Docker レジストリの構築

このステップでは、ローカル環境に Docker レジストリをセットアップします。ここでは、Docker 公式が提供しているレジストリ用イメージを利用します。

目標

Docker レジストリを起動し、利用可能な状態にすること。

完了イメージ

レジストリを構築する手順は以下の通りです:

  1. registry イメージをプル(取得)します。
Docker レジストリイメージのプル
  1. コンテナ内のデータを永続化しやすくするため、/home/labex パスに dockerregistry という名前のディレクトリを作成します。
dockerregistry ディレクトリの作成
  1. registry イメージを使用して my-registry という名前のコンテナを実行します。その際、ポートをマッピングし、作成した dockerregistry ディレクトリをボリュームとしてマウントしてデータを保存できるようにします。
Docker レジストリコンテナの実行
  1. curl コマンドを使用して、レジストリが正常に応答するか確認します。
Docker レジストリの稼働確認

このステップが完了すると、ローカルマシン上で Docker レジストリのインスタンスが稼働した状態になります。

✨ 解答を確認して練習

Docker レジストリへのイメージのプッシュ

Docker レジストリが稼働したので、実際に使ってみましょう。このステップでは、サンプルとなる Docker イメージを用意し、構築したローカルレジストリにプッシュ(送信)します。

目標

ローカル Docker レジストリにイメージをプッシュすること。

完了イメージ

イメージをプッシュする手順は以下の通りです:

  1. Docker Hub から hello-world イメージをプルします。
hello-world イメージのプル
  1. 自分のレジストリ用として、hello-world イメージに新しいタグを付けます。
hello-world イメージへのタグ付け
  1. タグ付けした hello-world イメージをローカルレジストリにプッシュします。
ローカルレジストリへのイメージプッシュ

このステップが完了すると、ローカル Docker レジストリ内にイメージが保存されます。

✨ 解答を確認して練習

Docker レジストリからのイメージのプル

レジストリが稼働し、サンプルイメージも保存されました。最後のステップでは、ローカルレジストリからイメージをプル(取得)する方法を確認します。

目標

構築したレジストリからイメージをプルすること。

完了イメージ

ローカルレジストリからイメージをプルする手順は以下の通りです:

  1. docker rmi コマンドを使用して、ローカルレジストリ用にタグ付けした hello-world イメージのローカルコピーを一旦削除します。
Docker イメージの削除
  1. ローカル Docker レジストリからイメージをプルします。
ローカルからのイメージプル
  1. プルしたイメージからコンテナを実行し、正しく動作するか確認します。
イメージからのコンテナ実行

このステップが完了すると、独自のレジストリからイメージを取得して利用できることが証明されます。

✨ 解答を確認して練習

まとめ

このチャレンジでは、ローカル Docker レジストリの構築、イメージのプッシュ、そしてプッシュしたイメージのプルという一連の操作を学びました。ローカルレジストリを活用することで、イメージ管理の柔軟性が高まり、オフライン環境での開発もスムーズになります。チャレンジ完了、おめでとうございます!