Docker ハンズオン演習
ホーム
ホーム
  • 0. ラボの使い方
  • 1. Docker の基本コマンド
  • 2. Docker コンテナの実行
  • 3. Docker イメージのビルド
  • 4. Docker レジストリ
  • 5. Volume
  • 6. ネットワーク
  • 7. Docker Compose

4. Docker レジストリ

このラボでは Docker レジストリについて学習します。

テキストを参照しながら各問題にチャレンジしてください。
必要があればウェブで調べても構いません。

ステップ 1: 問題 1/8

Docker レジストリ (コンテナ レジストリ) とは何ですか。

  1. Github、GitLabなどのバージョン管理のためのコードホスティングプラットフォームの代替
  2. Dockerfile の保管場所
  3. 名前つき Docker イメージの保管・配布システム
  4. 上記すべて
Answer

名前つき Docker イメージの保管・配布システム

ステップ 2: 問題 2/8

デフォルトで Docker Engine はどのコンテナ レジストリからイメージを取得しますか。

  1. Google Artifact Registry
  2. Docker Hub
  3. Amazon Elastic Container Registry
  4. Azure Container Registry
  5. On-premises Registry
Answer

Docker Hub

Docker Hub は Docker Inc. によってホストされ提供されている Docker レジストリのサービスです。

ステップ 3: 問題 3/8

自身で構築したプライベート レジストリにログインするときに使用するコマンドは以下のどれですか。

  1. docker login <SERVER>
  2. docker sign-in <SERVER>
  3. docker load <SERVER>
  4. docker connect <SERVER>
Answer

docker login <SERVER>

ステップ 4: 問題 4/8

このホストにプライベート レジストリを作成してください。

  • コンテナ名:my-registry
  • ホストポート:5000
Hints

プライベート レジストリを作成するには以下の設定で detached モードでコンテナを実行します。

  • イメージ:registry:2
  • コンテナポート:5000

また、実際の使用時には、可用性の観点から docker container run コマンドで --restart=always フラグを設定します。

Solution

docker container run -d -p 5000:5000 --name my-registry registry:2 を実行します。

ステップ 5: 問題 5/8

作成したプライベート レジストリに以下の 2 つのイメージを保存してください。

  • イメージ:nginx
  • イメージ:httpd

レジストリのサーバー名は localhost:5000 で指定できます。 レジストリにイメージが保存できているかは curl -X GET localhost:5000/v2/_catalog で確認できます。

注意
まず最初に 2 つのイメージを pull する必要があります。

Hints
  • イメージを保存する前に、保存先のプライベート レジストリのサーバー名を付加した別名のイメージを docker image tag コマンドで作成します。
  • docker image push コマンドを使用してイメージを保存します。
Solution

まずイメージを pull します。

docker image pull nginx
docker image pull httpd

次に、取得したイメージから別名のイメージを作成します。

docker image tag nginx localhost:5000/nginx
docker image tag httpd localhost:5000/httpd

イメージをプライベート レジストリに push します。

docker image push localhost:5000/nginx
docker image push localhost:5000/httpd

ステップ 6: 問題 6/8

registry:2 以外のイメージをこのホスト上からすべて削除してください。

Hints

docker image prune -a を実行することで、コンテナで未使用のイメージをすべて削除することができます。

ステップ 7: 問題 7/8

プライベート レジストリからイメージ localhost:5000/nginxを pull してください。

Solution

docker image pull localhost:5000/nginx を実行します。

ステップ 8: 問題 8/8

プライベート レジストリを削除します。 コンテナ my-registry を削除してください。

Hints

docker container stop コマンドを使用してコンテナを停止してから docker container rm コマンドでコンテナを削除します。

Solution
docker container stop my-registry
docker container rm my-registry

完了


チャレンジ完了!

お疲れ様でした!

Prev
3. Docker イメージのビルド
Next
5. Volume