Docker ネットワークアソシエイツへの旅#2 ポートマッピングでネットワークの勉強
2021年の抱負であります、Dockerネットワークの勉強2回目です。
ちなみにWireshark達人への道と同じくシリーズ名として、「
Dockerネットワークアソシエイツへの旅」としております。
AWSアソシエイツ等の資格からフィーチャーしておりますが、このアソシエイツという意味は準会員や同僚、仲間といった意味があるようです。
つまり、勉強してDockerユーザー仲間になるよ!的な意味を持たせたつもりです、はい。
なお、本記事は筆者の備忘録として書いていきますが、Dockerを使ったことがない人にとっては有用な情報もあるかもしれませんので、宜しかったら一読してみてください。
今回は、前回リンクを張ったDocker-docs-jaの記事を実際に手元の環境で試して想定通りの動作をするか?を確認したいと思います。
今回確認するリンクは、「Docker Desktop for Windows のネットワーク構築機能」となり、こちらのポートマッピングとホスト側、コンテナ側のIF状態をチェックしていきたいと思います。
今回の環境は、前回と同様以下の通りです。
項目 | 環境情報 |
OS | Windows10 Pro x64 |
Docker | Docker Engine v20.10.0 |
コマンドプロンプトを起動し、以下のコマンドを実行します。
docker run -p 8080:80 -d nginx
コマンドの正常起動を確認し、http://localhost:8080にアクセスすると図2のnginxの画面が表示されます。
ここからが重要なのですが、コマンドでインターフェイスの状態を確認してみましょう。
C:\Users\xxxx>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16792c6550fb nginx "/docker-entrypoint.…" 15 minutes ago Up 15 minutes 0.0.0.0:8080->80/tcp xenodochial_benz
※PORTSでローカル0.0.0.0:8080が80番ポートにポートマッピングされていることが確認できます
C:\Users\xxxx>docker inspect --format="{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" 16792c6550fb
172.17.0.2
※nginxのIPアドレスが、172.17.0.2であることが確認できます
C:\Users\xxxx>docker network ls
NETWORK ID NAME DRIVER SCOPE
13872d16adf9 bridge bridge local
17d678c52da4 host host local
b02b95bd2940 none null local
eea09009b96f wp-network bridge local
※docker runでオプションなしだと、bridgeネットワークに割り当てられます。ここで、IDを確認します。
C:\Users\xxxx>docker network inspect 13872d16adf9
[
{
"Name": "bridge",
"Id": "13872d16adf9c4a2ec65d4de76cd09053565e86b24bb5f649ff7053a2b49f6b8",
"Created": "2021-01-03T06:19:25.1673691Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"16792c6550fb871506c353d030c429fc7c692959476302e75b6aed69637a25a0": {
"Name": "xenodochial_benz",
"EndpointID": "e2becd6f197038d5c06d262f11571278de79cfc26b1bbb456e2f79cb3b4a9a49",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
※172.17.0.2のMACアドレスを確認できます。
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
※ブリッジ名がdocker0であることが確認できました。
"Labels": {}
}
]
上記のコマンドによる確認で、Docker for Windowsの動作を確認することができます。
- docker runオプションなし起動だと、bridgeネットワークに所属する
- 作成されるブリッジの名称は、docker0である
- IPマスカレードは、trueである
- デフォルトサブネットは、172.17.0.0/16である
基本的なdockerのコマンドでも丁寧に観察していけば、Dockerネットワークの仕組みが分かってきます。
面白いですね、Docker!!一緒にどんどん勉強してきましょう。
最新記事 by 伊集院 (全て見る)
- 【暗号化通信(TLS)を復元できる】WIRESHARK達人への道 第二十五歩 暗号化通信(TLS)を復号する方法 - 1月 1, 2023
- 【詳細版】NSM(ネットワークセキュリティモニタ)、Zeekとは? - 9月 1, 2022
- 【簡易版】OSSネットワークセキュリティモニタZeekとは? - 8月 26, 2022