単一ホスト内での Docker のネットワークの仕組みをまとめてみる。 全体像 まず、Docker のネットワークは以下の図ような構成になっている。 ざっとポイントをまとめるとこんな感じ。 * ホストには docker0 という仮想ブリッジが作成される * コンテナは veth を介して仮想ブリッジに接続される * コンテナ内からは eth0 というNIC があるように見える(実体は veth) * コンテナ内の eth0 には、空いているIPアドレスが自動で割り当てられる(なので、IPアドレスは不定)。 * コンテナからホストの外部に通信するには、NAT(IPマスカレード)が使われる * 単一ホスト上のコンテナ間の通信は、仮想ブリッジを経由して行われる(なので、コンテナ内で見える 172.17.0.0/16 のアドレスを使って通信できる) もう少し詳しく 分からないところを調べてみた。
![Docker の基本学習 ~ Docker のネットワーク - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/f5bf0b9d3555b9285b2bf718a71dc5b912ba5619/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9RG9ja2VyJTIwJUUzJTgxJUFFJUU1JTlGJUJBJUU2JTlDJUFDJUU1JUFEJUE2JUU3JUJGJTkyJTIwfiUyMERvY2tlciUyMCVFMyU4MSVBRSVFMyU4MyU4RCVFMyU4MyU4MyVFMyU4MyU4OCVFMyU4MyVBRiVFMyU4MyVCQyVFMyU4MiVBRiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YmIyYmYzOWUwOTE2Y2M4N2FhMzAxYzY0ZTE2YzlhZmE%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwQXJ0dXJpYXMmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPThkMTBjMmU0ZmMwYzVkMjRhZWY2ODIzN2JjODM1MzFk%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D1ec53b59825c3857f1f049d4d90ea0c0)