がdocker0
インタフェースのようなあなたの物理サーバ上で仮想ネットワークを作成し、それはbridge
モードになっているので、このインタフェースすることができ、ローカルに関連する物理的なシステムインタフェースと、すべてがグローバルと同様であるあなたのeth0
経由でインターネットに接続することができネットワークはeth0
物理インターフェイスを通過します。
したがって、稼動中のドッカーコンテナ内のインターネットまたはローカルネットワークにアクセスする場合は、物理システム/etc/resolv.conf
ファイルにnameserver
を追加する必要があります。これは、ドッカーデーモンの起動時に発生します。物理システムでアクセスしているすべてのものがドッカーコンテナでアクセスできるようになります。
もう1つのことは、ドッカーコンテナの起動時にポートを公開して、eth0
インターフェイスの助けを借りて外部のドッカーネットワークからデータを引き出すことができるようにすることです。これらのすべての設定は自動的にiptables
の助けを借りて慎重に扱われます。ドッカーはiptables rules
を追加し、docker0
から転送するトラフィックはeth0
になり、すべてのサービスが完全に機能します。
例
docker run -it --name "$container_name" -d -h "$host_name" -p 9080:9080 -p 1522:1522 "$image_name"
ので、上記の場合には、私のアプリケーションは、ネットワーク内の他のマシン上でホストされているとアプリケーションが完璧に動作しているポート1522
でoracle db
からデータを引っ張っています。 -p 1522:1522
それは同じマシン上の1522
ポートに要求を送信し、物理マシンは同じ1522
ポート上のネットワークホストマシンにこの要求を送信し、すべての通信が行われます。
これは意味をなさないでしょう。
ありがとうございました!
私はこれをすぐにお試しください! – 165plo
私はネームサーバに混乱しています。 Windowsでこれを設定するためのリンクがありますか?私は、ドッカーコンテナに接続されているホストマシン上の接続を開いたと考えました。これらの双方向性ですか? – 165plo
このリンクでは、 'dns opts'でドッカー設定を取得します。https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon –