Server Build Exercises on AWS (Amazon Web Services) 2022 edition

仮想ネットワークの作成・削除

この構築ガイドでは、 dockerで新たに仮想ネットワーク os を作成し、 コンテナを仮想ネットワーク os に接続しています。 デフォルトの仮想ネットワークでもコンテナは利用可能ですが、 デフォルトのネットワークではなく、 別途ユーザ専用の仮想ネットワークを作成・利用する方法がdocker社推奨の使い方です。 また、 ユーザ定義の仮想ネットワークにすれば名前解決が楽なので、 これが推奨です

実際に仮想ネットワークを作成・削除しているスクリプトは次のファイルです

04_docker/04-04_debian-nginx-web.py-mysql/scripts/scripts/libexec/network-create.sh
04_docker/04-04_debian-nginx-web.py-mysql/scripts/scripts/libexec/network-destroy.sh

このスクリプトを読み解くために必要な情報を解説します

スクリプトの核心部分は次の4ヶ所です。 最初の3行は設定で「変数=値」形式です (シェルスクリプトでは、変数宣言を、こう書きます。 「変数=値」は空白なしの一続きです。 変数のあたまに$をつける(例: $変数)と、変数の値を展開する意味になります)

net=172.30.0.0/16
range=172.30.0.0/24
gw=172.30.0.1

docker network create --driver=bridge --subnet=$net --ip-range=$range --gateway=$gw os

4行目を実際に実行する際には(変数が展開され)

docker network create --driver=bridge --subnet=172.30.0.0/16 --ip-range=172.30.0.0/24 --gateway=172.30.0.1 os

が実行されています。 --subnetは利用したいネットワークアドレス、 --gatewayがそのネットワークのデフォルトルートです。 いちおう--ip-rangeをつけていますが--ip-rangeは必須ではありません

スクリプトでは明示的に 172.30/16 を指定しましたが、 アドレスにこだわりがないなら、 ネットワークの作成は単に

docker network create os

と実行してもかまいません。 IPアドレスはdockerが適当に割り当てます (プライベートアドレス空間172.16.0.0/12の中から、 /16 単位で利用していないネットワークを小さい順に割り当てていくはずです)

削除

docker network rm os

ちなみに docker がデフォルトで作成する3つのネットワークは削除できません

ステータス

docker network inspect os >/dev/null && is_found=1 || is_found=0
docker network ls

リファレンス

Last updated on 7 Dec 2021
Published on 7 Dec 2021
Copyright (C) 2021-2022 Ken'ichi Fukamachi, All rights reserved. CC BY-NC-SA 4.0
We appreciate AWS Academy Japan for the offer of the learning environment.

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.