Dockerがデーモンプロセスとコンテナを構成するネットワーク-コンテナのネットワーク

2240 ワード

テキストアドレス
コンテナで使用されるネットワークタイプ(bridge、overlay、macvlanネットワーク、カスタムネットワークプラグイン)は、コンテナ内で透明です.コンテナの観点から、IPアドレス、ゲートウェイ、ルーティングテーブル、DNSサービス、および他のネットワークの詳細を伴うネットワークインタフェースがあります(コンテナがnoneネットワークドライバを使用していないと仮定します).この話題は容器の観点からネット問題を見ることです.
1.公開ポート
デフォルトでは、コンテナを作成すると、外部世界にポートがパブリッシュされません.ポートをDocker以外のサービスまたはコンテナネットワークに接続されていないDockerコンテナに使用できるようにするには、--publishまたは-pフラグを使用します.これにより、コンテナポートをDockerホストのポートにマッピングするファイアウォールルールが作成されます.ここにはいくつかの例があります.
フラグ値
説明-p 8080:80
コンテナの80ポートをDockerホストの8080ポート(TCP)にマッピング-p 8080:80/udp
コンテナの80ポートをDockerホストの8080ポート(UDP)にマッピング-p 8080:80/tcp -p 8080:80/udp
コンテナの80ポートをDockerホストの8080ポート(TCPとUDP)にマッピング
2.IPアドレスとホスト名
デフォルトでは、コンテナは接続されているDockerネットワークごとにIPアドレスを割り当てます.IPアドレスはネットワークに割り当てられたプールから割り当てられるので、Dockerデーモンは各コンテナのDHCPサーバとして有効に機能する.各ネットワークにもデフォルトのサブネットマスクとゲートウェイがあります.
コンテナが起動すると、--networkを使用して単一のネットワークに接続するしかありません.ただし、実行中のコンテナは、docker network connectを使用して複数のネットワークに接続することができる.--networkフラグを使用してコンテナを起動する場合、--ipまたは--ip6フラグを使用して、そのネットワーク上のコンテナに割り当てられたIPアドレスを指定できます.
既に存在するコンテナをdocker network connectを介して他のネットワークに接続する場合、--ipまたは--ip6フラグを使用して、追加のネットワーク上のコンテナのIPアドレスを指定することができる.
同様に、コンテナのホスト名のデフォルトはDockerのコンテナ名です.--hostnameを使用してホスト名を上書きできます.docker network connectを使用して既存のネットワークに接続する場合、--aliasフラグを使用して、ネットワーク上のコンテナに他のネットワーク別名を指定できます.
3.DNSサービス
デフォルトでは、コンテナは、/etc/hostsおよび/etc/resolv.confを含むDockerデーモンからDNS設定を継承します.これらの設定は、各コンテナに基づいて上書きできます.
ひょうしき
説明--dns
DNSサーバのIPアドレス.複数の--dnsフラグを使用して、複数のDNSサーバを指定できます.コンテナが指定されたIPアドレスのいずれかに接続できない場合、GoogleのパブリックDNSサーバ8.8.8.8が使用され、コンテナはドメイン名を解析できます.--dns-search
完全に限定されていないホスト名を検索するDNS検索ドメイン.複数のDNS検索プレフィックスを指定するには、複数の--dns-searchフラグを使用します.--dns-opt
DNSオプションとその値を表すキー値のペア.使用可能なオプションは、オペレーティングシステムのresolv.confドキュメントを参照してください.--hostname
コンテナは、自分が使用するホスト名です.指定されていない場合は、デフォルトはコンテナの名前です.
4.プロキシサーバ
コンテナがプロキシサーバを使用する必要がある場合は、Usea proxy serverを参照してください.