2.1 基本的なコマンド docker network
Dockerのネットワークは、コンテナが互いに、または外部ネットワークとやりとりすることを可能にするんだよね。docker network
コマンドは、ネットワークの作成、設定、管理のための柔軟なオプションを提供してくれる。これにより、コンテナのネットワーク間でのやりとりの隔離や管理が可能になる。この講義では、docker network
コマンドとそのネットワーク管理での使い方を詳しく見ていくよ。
基本的なdocker network
コマンド:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
ネットワークの作成: コマンド docker network create
docker network create
コマンドは、新しいネットワークを作成するために使用されるんだね。bridge
、host
、overlay
、macvlan
など、さまざまなドライバーでネットワークを作成することができるよ。
bridge
ドライバーでネットワークを作成する例
docker network create --driver bridge my_bridge_network
overlay
ドライバーでネットワークを作成する例
docker network create --driver overlay my_overlay_network
macvlan
ドライバーでネットワークを作成する例
docker network create --driver macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 my_macvlan_network
2.2 ネットワーク操作コマンド
1. 利用可能なネットワークを見る: コマンド docker network ls
コマンド docker network ls
は、Docker で作成されたすべてのネットワークのリストを表示します。
docker network ls
コマンドの出力は以下のようになります:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. ネットワーク情報を見る: コマンド docker network inspect
コマンド docker network inspect
を使うと、特定のネットワークに関する詳細情報が得られます。例えば、接続されたコンテナやサブネットやゲートウェイの設定などが含まれます。
使用例:
docker network inspect my_bridge_network
コマンドの出力は JSON 形式でネットワーク情報を含みます:
[
{
"Name": "my_bridge_network",
"Id": "0e7e2d58fe94",
"Created": "2021-01-01T00:00:00.000000000Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"container_id": {
"Name": "my_container",
"EndpointID": "6c52f8c75c1e",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
3. コンテナをネットワークに接続する: コマンド docker network connect
コマンド docker network connect
は、既に実行中のコンテナを既存のネットワークに接続するために使われます。
使用例:
docker network connect my_bridge_network my_container
4. コンテナをネットワークから切断する: コマンド docker network disconnect
コマンド docker network disconnect
は、コンテナをネットワークから切断するために使われます。
使用例:
docker network disconnect my_bridge_network my_container
5. ネットワークを削除する: コマンド docker network rm
コマンド docker network rm
は、ネットワークを削除するために使われます。注意点として、接続されているコンテナをすべて切断した後でのみネットワークを削除できます。
使用例:
docker network rm my_bridge_network
2.3 コマンドの例: docker network
docker network
コマンドの使用例
例 1: bridge
ネットワークの作成と使用
ネットワークの作成:
docker network create --driver bridge my_bridge_network
コンテナを起動しネットワークに接続する:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
ネットワークの確認:
docker network inspect my_bridge_network
コマンド docker network inspect
の出力には、ネットワークの詳細情報が JSON フォーマットで含まれています。出力をもっと見やすくするには、jq
ユーティリティを使用できます:
docker network inspect my_bridge_network | jq
これはネットワークに関する情報(接続されているコンテナ、IPアドレス、サブネット設定など)をフィルタリングしたり構造的に表示するのに便利です。
例 2: コンテナの接続と切断
コンテナの起動:
docker run -d --name my_container nginx
コンテナをネットワークに接続する:
docker network connect my_bridge_network my_container
コンテナをネットワークから切断する:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION