6. ネットワーク
このラボでは Docker のネットワークについて学習します。
テキストを参照しながら各問題にチャレンジしてください。
必要があればウェブで調べても構いません。
ステップ 1: 問題 1/8
現在、このホストには何個のネットワークが構成されていますか。
- 0
- 1
- 2
- 3
- 4
Hints
docker network ls コマンドを使用します。
Answer
3
ステップ 2: 問題 2/8
(※ スクリプトの実行が完了してから開始してください)alpine-1 という名前のコンテナを起動しました。
このコンテナが接続されているネットワークは以下のどれですか。
- bridge
- host
- none
- container
Hints
docker container inspect コマンドを使用します。
Solution
docker container inspect alpine-1 コマンドを実行し、Networks セクションを確認します。
Answer
bridge
ステップ 3: 問題 3/8
ネットワーク bridge のサブネット構成は以下のどれですか。
- 172.17.0.0/16
- 182.18.0.1/16
- 192.168.0.1/24
- 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 の正常に接続されているか確認してください。
完了
チャレンジ完了!
お疲れ様でした!