Docker Network
Docker Network
これは簡単なドッキングステーションネットワーク構造の概略図です.
1. Docker0 interface
(1)特徴 IPは自動的に172.17.42.1に設定され、16ビットネットワークマスク(255.255.0.0)に設定されます. このIPはDHCPによって割り当てられるのではなく、Docker内部論理によって自動的に割り当てられる. ドッキングステーション0は、汎用インタフェースではなく、仮想イーサネットブリッジです. docker 0はcontainerと通信するための仮想Linux bridgeである.デフォルトでは、このbridgeはL 2通信に基づいています.ドッキングステーションをインストールするとdocker 0というbridgeが作成され、コンテナの外部通信時にこのdocker 0インタフェースを通過する必要があります.
2. Iptables
Linuxがデフォルトで提供するiptablesは、Dockerが外部ネットワークと通信する上で重要な役割を果たします.Docker Pakageをインストールすると、自動的にiptablesに登録されます.
Linuxファイアウォールとして機能し、パケットフィルタリングとNATとして機能します.
3. Container network
dockerがインストールされ、containerが作成され、コンテナはLinux Namespaceテクノロジーを使用してそれぞれの独立したネットワーク空間を割り当てます.
コンテナを作成すると、ピアインタフェースが作成され、そのうちの1つはethoの名前でコンテナの内部ネームスペースに割り当てられ、もう1つはvetthXXX(仮想イーサネットポート)の名前でdocker 0 bridgeにバインドされます.
(1)コンテンツポート外部露出
containerを作成すると、デフォルトでは外部と通信できません.したがって、外部と通信するには、外部に露出するポートを指定する必要があります.
(2) docker-proxy
docker-proxyがiptablesのNATを使用できない場合、docker-proxyはこのロールに代わります.
(3)iptablesを用いたDNAT
3.ネットワーク命令
(1)ネットワーククエリ
現在作成されているDockerネットワークのリストを表示できます.
(2)ネットワークの作成
(3)ネットワーク詳細
(1) BRIDGE
dockerのデフォルトのネットワーク方式.
docker daemonを実行するとdocker 0というブリッジが作成され、コンテナを作成するとネットワーク名空間領域が作成され、コンテナのインタフェースがdocker 0 bridgeにバインドされます.
(2) HOST
ホスト方式でコンテナを作成すると、コンテナはホストとともにネットワークを使用し、独立したネットワーク領域を持たない.
コンテナを作成する場合は、
このようにして作成されたコンテナは、既存のコンテナのネットワーク環境を共有します.
(3) NONE
ソース
https://www.daleseo.com/docker-networks/
https://jonnung.dev/docker/2020/02/16/docker_network/
https://bluese05.tistory.com/15
https://youngmind.tistory.com/entry/%EB%8F%84%EC%BB%A4-%EA%B0%95%EC%A2%8C-3-%EB%8F%84%EC%BB%A4-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-1
これは簡単なドッキングステーションネットワーク構造の概略図です.
1. Docker0 interface
(1)特徴
2. Iptables
Linuxがデフォルトで提供するiptablesは、Dockerが外部ネットワークと通信する上で重要な役割を果たします.Docker Pakageをインストールすると、自動的にiptablesに登録されます.
Linuxファイアウォールとして機能し、パケットフィルタリングとNATとして機能します.
3. Container network
dockerがインストールされ、containerが作成され、コンテナはLinux Namespaceテクノロジーを使用してそれぞれの独立したネットワーク空間を割り当てます.
コンテナを作成すると、ピアインタフェースが作成され、そのうちの1つはethoの名前でコンテナの内部ネームスペースに割り当てられ、もう1つはvetthXXX(仮想イーサネットポート)の名前でdocker 0 bridgeにバインドされます.
(1)コンテンツポート外部露出
containerを作成すると、デフォルトでは外部と通信できません.したがって、外部と通信するには、外部に露出するポートを指定する必要があります.
docker run -d -p 8080:80 --name [컨테이너]
このコマンドを実行すると、8080ポートを傍受するプロセスをdocker-proxyと呼びます.(2) docker-proxy
docker-proxyがiptablesのNATを使用できない場合、docker-proxyはこのロールに代わります.
(3)iptablesを用いたDNAT
3.ネットワーク命令
(1)ネットワーククエリ
現在作成されているDockerネットワークのリストを表示できます.
docker network ls
bridge
、host
、none
は、Dockerデーモンの実行時にデバッガとして作成されるネットワークです.(2)ネットワークの作成
docker network create
(3)ネットワーク詳細
docker network inspect
(4)ネットワークコンテナへの接続docker network connect [네트워크] [컨테이너]
(5)ネットワークからのコンテナ接続の切断docker network disconnenct [네트워크] [컨테이너]
(6)2番目の容器を接続するdocker run --name [컨테이너] --network [다른 네트워크]
(7)ネットワークの削除docker network rm [네트워크]
(8)ネットワークのクリアdocker network prune
2.ネットワークタイプ(1) BRIDGE
dockerのデフォルトのネットワーク方式.
docker daemonを実行するとdocker 0というブリッジが作成され、コンテナを作成するとネットワーク名空間領域が作成され、コンテナのインタフェースがdocker 0 bridgeにバインドされます.
docker network inspect bridge
.(2) HOST
ホスト方式でコンテナを作成すると、コンテナはホストとともにネットワークを使用し、独立したネットワーク領域を持たない.
コンテナを作成する場合は、
--net=host
オプションを使用します.hostオプションを使用して作成されたコンテナではbridgeは使用されないためdocker 0にバインドされません.このようにして作成されたコンテナは、既存のコンテナのネットワーク環境を共有します.
(3) NONE
--net=none
オプションを使用してコンテナを作成すると、コンテナにはネットワーク領域が分離されますが、インタフェースはありません.ソース
https://www.daleseo.com/docker-networks/
https://jonnung.dev/docker/2020/02/16/docker_network/
https://bluese05.tistory.com/15
https://youngmind.tistory.com/entry/%EB%8F%84%EC%BB%A4-%EA%B0%95%EC%A2%8C-3-%EB%8F%84%EC%BB%A4-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-1
Reference
この問題について(Docker Network), 我々は、より多くの情報をここで見つけました https://velog.io/@tastestar/Docker-Networkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol