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

6. ネットワーク

このラボでは Docker のネットワークについて学習します。

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

ステップ 1: 問題 1/8

現在、このホストには何個のネットワークが構成されていますか。

  1. 0
  2. 1
  3. 2
  4. 3
  5. 4
Hints

docker network ls コマンドを使用します。

Answer

3

ステップ 2: 問題 2/8

(※ スクリプトの実行が完了してから開始してください)
alpine-1 という名前のコンテナを起動しました。
このコンテナが接続されているネットワークは以下のどれですか。

  1. bridge
  2. host
  3. none
  4. container
Hints

docker container inspect コマンドを使用します。

Solution

docker container inspect alpine-1 コマンドを実行し、Networks セクションを確認します。

Answer

bridge

ステップ 3: 問題 3/8

ネットワーク bridge のサブネット構成は以下のどれですか。

  1. 172.17.0.0/16
  2. 182.18.0.1/16
  3. 192.168.0.1/24
  4. 172.17.0.1/24
Hints

docker network inspect コマンドを使用します。

Solution

docker network inspect bridge コマンドを実行して Subnet の値を確認します。

Answer

172.17.0.0/16

ステップ 4: 問題 4/8

イメージ alpine を使用して、ネットワーク none に接続された alpine-2 という名前のコンテナを実行してください。
(コンテナは起動直後に停止しても構いません)

Hints

ネットワークへの接続を設定するには docker container run コマンドで --network=none を指定します。

Solution

docker container run --name alpine-2 --network=none alpine コマンドを実行します。

ステップ 5: 問題 5/8

以下の設定で新しいネットワークを作成してください。

  • ネットワーク名:mysql-network
  • ドライバー:bridge
  • サブネット:182.18.0.0/24
  • ゲートウェイ:182.18.0.1
Hints
  • ネットワークを作成するには docker network create コマンドを使用します。
  • ドライバーを設定するには --driver フラグを指定します。
  • サブネットを設定するには --subnet フラグを指定します。
  • ゲートウェイを設定するには --gateway フラグを指定します。 https://matsuand.github.io/docs.docker.jp.onthefly/engine/reference/commandline/network_create/
Solution

docker network create --driver bridge --subnet 182.18.0.0/24 --gateway 182.18.0.1 mysql-network コマンドを実行します。

ステップ 6: 問題 6/8

以下の設定でネットワーク mysql-network に接続された mysql コンテナを detached モードで作成してください。 データベースのパスワードも環境変数で設定します。

  • コンテナ名:mysql-db
  • イメージ:mysql:5.6
  • 環境変数:MYSQL_ROOT_PASSWORD=db_pass123
  • ネットワーク:mysql-network
Hints
  • 接続するネットワークを設定するには、docker container run コマンドで --network フラグを指定します。
  • 環境変数を設定するには、-e フラグを指定します。
Solution

docker container run -d --name mysql-db -e MYSQL_ROOT_PASSWORD=db_pass123 --network mysql-network mysql:5.6 を実行します。

ステップ 7: 問題 7/8

以下の設定で、ネットワーク mysql-network に接続された webapp という名前のコンテナを detached モードで実行してください。

  • コンテナ名:webapp
  • イメージ:qualia906/simple-webapp-mysql
  • 環境変数:DB_Host=mysql-db, DB_Password=db_pass123
  • コンテナポート:8080
  • ホストポート:38080
  • ネットワーク:mysql-network
Hints
  • 接続するネットワークを設定するには、docker container run コマンドで --network フラグを指定します。
  • 環境変数を設定するには、-e フラグを指定します。複数の環境変数を設定する場合は、それぞれの環境変数について -e フラグを指定します。
Solution

docker container run -d --name webapp --network mysql-network -e DB_Host=mysql-db -e DB_Password=db_pass123 -p 38080:8080 qualia906/simple-webapp-mysql を実行します。

ステップ 8: 問題 8/8

以下のリンクから webapp にアクセスして webapp と mydql-db の正常に接続されているか確認してください。

完了


チャレンジ完了!

お疲れ様でした!

Prev
5. Volume
Next
7. Docker Compose