tips-jp
小ネタ集 (Tips written in Japanese)
Project maintained by KazKobara
Hosted on GitHub Pages — Theme by mattgraham
docker network の subnet を指定する際に使うべきでないネットワークアドレス
Docker コンテナ・ネットワークについてはこちらなど、docker-compose.yml での docker network の指定例などはこちらなどを参照。
結論
- 以下の docker-compose, docker build などで自動割り当てされる subnet (および別途指定している subnet )は避ける。
- うっかりミスを避ける意味でもクラスA プライベートIPアドレス (10.0.0.0/8) を分割して subnet を指定しておくのが無難。
- 例えば 10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24 など。
docker-compose が bridge network に自動で割り当てる subnet
- 172.x.0.0/16 ここで x は18以上31以下、および、
- 192.168.y.0/20 ここで y は 0 以上 256 以下の16の倍数、つまり、0, 16, 32, 48, …, 240, 256。
- version 1.25.0 で確認。
docker build が bridge network に自動で割り当てる subnet
- 172.17.0.0/16
- version 19.03.13 などで確認。
補足
- subnetを指定した後で、docker-composeが自動的に割り当る際には、指定された subnet を避けてくれるが、逆の場合(docker-composeが自動割り当てた subnet を指定した場合)は問題が生じる。
- docker-composeが自動的に割り当る subnet はラウンドロビンで毎回変わるため、運悪く指定予定の subnet が自動的に割り当てられた場合に地雷を踏むことになる。
homeに戻る