このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Docker入門】ネットワークを指定したコンテナの起動
Dockerでは、コンテナがどのネットワークに接続されるかを指定するためのオプションが提供されています。これにより、異なるネットワークに所属するコンテナ同士を接続したり、ホストとの通信を制御したりすることができます。
例として、「docker container run
」コマンドにおいて「--net
」オプションを使用してネットワークを指定する方法を示します。
新しいネットワークの作成
まず、「docker network create
」コマンドを使用して新しいネットワークを作成します。「docker network create
」コマンドを使用して新しいネットワークを作成します。「ap_network
」という名前でブリッジドライバを指定します。
・「docker network create --driver=bridge ap_network
」コマンドを実行します。
PS C:\Users\joeac> docker network create --driver=bridge ap_network
8c04a09a74bc6e3ed7ed21ade33d2e97bf111f421baf22bdb9091798ee71bbcd
このコマンドの意味は下表のとおりです。
コマンド | 意味 |
---|---|
docker | Dockerコマンドの実行を示す。 |
network create | ネットワークを作成するコマンド |
--driver=bridge | ネットワークドライバとしてブリッジを使用することを指定 |
ap_network | 作成するネットワークの名前を指定 |
コンテナの起動
次に、「docker run
」コマンドを使用してコンテナを起動します。ここで、「--net
」オプションを使用して、先ほど作成したap_network
にコンテナを接続します。
また、「-d
」オプションを使用してバックグラウンドでコンテナを実行し、「-p
」オプションを使用してホストのポート80をコンテナのポート80にマッピングします。
・「docker run -d -p 80:80 --name=webap --net=ap_network nginx
」コマンドを実行します。
PS C:\Users\joeac> docker run -d -p 80:80 --name=webap --net=ap_network nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
8a1e25ce7c4f: Pull complete
e78b137be355: Pull complete
39fc875bd2b2: Pull complete
035788421403: Pull complete
87c3fb37cbf2: Pull complete
c5cdd1ce752d: Pull complete
33952c599532: Pull complete
Digest: sha256:6db391d1c0cfb30588ba0bf72ea999404f2764febf0f1f196acd5867ac7efa7e
Status: Downloaded newer image for nginx:latest
80da595b6d4729eb5014039c51fc1862b5dc526aa4a11386cd3a500a3f5ebb5c
このコマンドの意味は下表のとおりです。
コマンド | 意味 |
---|---|
docker run | Dockerコンテナを起動するコマンド |
-d | バックグラウンドでコンテナを実行するオプション |
-p 80:80 | ホストのポート80をコンテナのポート80にマッピングするオプション |
--name=webap | コンテナにwebap という名前を付けるオプション |
--net=ap_network | コンテナをap_network という名前のネットワークに接続するオプション |
nginx | nginxイメージを使用してコンテナを作成する。 |
これにより、「webap
」という名前のNginxコンテナがバックグラウンドで起動し、「ap_network
」という名前のネットワークに接続され、ホストのポート80 にアクセスするとコンテナ内の Nginxサーバーにアクセスできるようになります。
Webブラウザでアクセスする
・Webブラウザを起動して、URLに「localhost」と入力します。
Nginxサーバーにアクセスできます。
コンテナとネットワーク接続の解除
・「docker network disconnect ap_network webap」コマンドを実行します。
PS C:\Users\joeac> docker network disconnect ap_network webap
このコマンドは、「webap
」という名前のコンテナを「ap_network
」という名前のネットワークから切断します。
コマンド | 意味 |
---|---|
docker network disconnect | コンテナを特定のネットワークから切断するコマンド |
ap_network | 切断するネットワークの名前を指定 |
webap | 切断するコンテナの名前を指定 |
Webブラウザでリロード
・Webブラウザでリーロードします。
Nginxサーバーに接続できなくなります。
コンテナとネットワーク接続
コンテナとネットワークを接続します。
・「docker network connect ap_network webap
」コマンドを実行します。
このコマンドは、「webap
」という名前のコンテナを「ap_network
」という名前のネットワークに接続します。
Webブラウザで再リロード
・Webブラウザで再びリーロードします。
Nginxサーバーに再びアクセスできるようになります。
作成したネットワークの削除
コンテナを停止させます。
・「docker container stop webap
」コマンドを実行します。
PS C:\Users\joeac> docker container stop webap
webap
作成したネットワークを削除します。
ネットワークを削除する前にネットワークに接続しているコンテナの接続を解除しておくのがよいかと思います。
・「docker network disconnect ap_network webap
」コマンドを実行します。
PS C:\Users\joeac> docker network disconnect ap_network webap
「ap_network
」を削除します。
・「docker network rm ap_network
」コマンドを実行します。
PS C:\Users\joeac> docker network rm ap_network
ap_network