CodeGym /コース /Docker SELF /ネットワークの作成と管理

ネットワークの作成と管理

Docker SELF
レベル 17 , レッスン 1
使用可能

2.1 基本的なコマンド docker network

Dockerのネットワークは、コンテナが互いに、または外部ネットワークとやりとりすることを可能にするんだよね。docker networkコマンドは、ネットワークの作成、設定、管理のための柔軟なオプションを提供してくれる。これにより、コンテナのネットワーク間でのやりとりの隔離や管理が可能になる。この講義では、docker networkコマンドとそのネットワーク管理での使い方を詳しく見ていくよ。

基本的なdocker networkコマンド:

  1. docker network create
  2. docker network ls
  3. docker network inspect
  4. docker network connect
  5. docker network disconnect
  6. docker network rm

ネットワークの作成: コマンド docker network create

docker network createコマンドは、新しいネットワークを作成するために使用されるんだね。bridgehostoverlaymacvlanなど、さまざまなドライバーでネットワークを作成することができるよ。

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 形式でネットワーク情報を含みます:

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 
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION