Dockerネットワークコマンド備忘録

自分の備忘録用にDockerネットワークコマンドに関する投稿をします。
以下の表は **docker network** コマンドで実行可能なコマンドリストです。
docker networkコマンドでは、docker用ネットワークの作成・削除・コンテナの接続・コンテナからの切断ができます。

## コマンドリスト

| コマンド | 説明 |
| :---- | :---- |
| docker network create | ネットワークの作成 |
| docker network ls | ネットワークリストの確認 |
| docker network rm | ネットワークの削除 |
| docker network inspect | ネットワークの詳細確認 |
| docker network connect | コンテナに接続 |
| docker network disconnect | コンテナからの切断 |

## ネットワークの作成

```
$ docker network create \
> --subnet 172.21.0.0/16 \
> --attachable \
> mylocalnet01
5b0cb52ac44008e6749833b73de8f47faad5368388db19234a6e2f6081feacca
```

## ネットワークリストの確認

```
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
...
5b0cb52ac440        mylocalnet01        bridge              local
...
```

## ネットワークの削除

```
$ docker network rm 5b0cb52ac440
5b0cb52ac440
```

## ネットワークの詳細確認

```
$ docker network inspect 98d6066533ca
[
    {
        "Name": "mylocalnet01",
        "Id": "98d6066533ca82b575cfdcd026fdebbe30316de9431d6007b5750e277ee89d42",
        "Created": "2019-06-10T13:57:47.1322105Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.21.0.0/16"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]
```

## コンテナに接続

```
$ docker container run -d -e DBNAME=testdb -e MARIADBUSER=root -e MARIADBPASSWORD=mysqlPassword -v /Users/katsuya/Documents/dev/backend/docker/mariadb/lib/mysql:/var/lib/mysql:rw --name mariadb0001 centos:mariadb0001
55b19db93ded27e047b3e60852c93209ab4139f9999b4509751fe4a3d007f57b
$ docker network connect mylocalnet01 mariadb0001
$ docker network inspect mylocalnet01
[
    {
        "Name": "mylocalnet01",
        "Id": "98d6066533ca82b575cfdcd026fdebbe30316de9431d6007b5750e277ee89d42",
        "Created": "2019-06-10T13:57:47.1322105Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.21.0.0/16"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "55b19db93ded27e047b3e60852c93209ab4139f9999b4509751fe4a3d007f57b": {
                "Name": "mariadb0001",
                "EndpointID": "4235c39603e47ba1b2d66874daa10b1dd1d35856abf55541b083b4137818e9a0",
                "MacAddress": "02:42:ac:15:00:02",
                "IPv4Address": "172.21.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
```

## ネットワークからの切断

```
$ docker network disconnect mylocalnet01 mariadb0001
$ docker network inspect mylocalnet01
[
    {
        "Name": "mylocalnet01",
        "Id": "98d6066533ca82b575cfdcd026fdebbe30316de9431d6007b5750e277ee89d42",
        "Created": "2019-06-10T13:57:47.1322105Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.21.0.0/16"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]
```

## 参考文献

1. 古賀政純, "Docker実践ガイド 第２版", 2019.
2. Docker ネットワーク機能の概要 — Docker-docs-ja 17.06.Beta ドキュメント, http://docs.docker.jp/engine/userguide/networking/index.html, Online; accessed 10-June-2019.