問題タブ [docker-networking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Docker for Mac ホスト ネットワーク
Docker for Mac を使用しています。私は2つのコンテナを持っています。
1 つ目: MySQL の localhost:3306 に接続しようとしている PHP アプリケーション。
2位:MySQL
リンクを使用して実行すると、相互に到達できます。
ただし、PHP アプリケーションのコードの変更 (例: localhost を "mysql" に変更) を避け、localhost を使い続けたいと考えています。
ホストネットワーキングはうまくいくようですが、問題は、ホストネットワーキングを有効にすると、ホスト Mac のポート 80 で PHP アプリケーションにアクセスできないことです。
php アプリケーションに docker exec -it を実行して localhost をカールすると、HTML が表示されるので、ポートがホスト マシンに転送されていないように見えますか?
linux - コンテナー内の virt-install コマンド
コンテナーで libvirtd サービスを実行するには - 以下のリンクに記載されている手順を使用します - http://www.projectatomic.io/blog/2014/10/libvirtd_in_containers/
rhel7 で libvirtd サービス コンテナーを正常に起動できました。しかし、libvirt-client コンテナーを起動し、これに対して virt-install コマンドを実行して fedora を起動しようとすると、次のエラーが表示されます。
[root@b054f0860441 libvirt]# virt-install --name fedoratest --vcpus=4 --ram 4096 --os-type=linux --disk path=/var/lib/libvirt/images/Fedora-Cloud-Base- 24-1.2.x8664.qcow2,format=qcow2,size=9 --check pathinuse=off, --noautoconsole --network bridge=virbr0 --import 警告 KVM アクセラレーションは使用できません。「qemu」を使用しています 警告 ディスク /var/lib /libvirt/images/Fedora-Cloud-Base-24-1.2.x8664.qcow2 は、他のゲスト ['x', 'y'] によって既に使用されています。
インストールを開始しています... ERROR Cannot get interface MTU on 'virbr0': No such device -------->>>> これがエラーのようです
docker0、virbr0 ネットワークへの接続、DNS 接続など - すべて問題ありません。ifconfig コマンドはコンテナー内のインターフェースをリストしませんが、「ip addr」は docker 内のインターフェースをリストします。どんな助けでも大歓迎です。
docker - Docker オーバーレイ ネットワークは、単一の特定の親ネットワーク インターフェイスにバインドできますか?
docker service
docker swarm でを作成しています。各 docker サービスが、各 swarm ノードで固有の IP アドレスを持つようにしたいと考えています。したがって、私のインスタンスには複数のネットワーク インターフェイス (eth1、eth2、および eth3) があり、それぞれに独自の異なる IP アドレスがあります。各ノードで単一の親ネットワーク インターフェイスに接続された Docker オーバーレイ ネットワークを作成できるようにして、各 Docker サービスが各ノードで独自の IP アドレスを持つようにしたいと考えています。
これは、そのようなネットワークとそれに付随するサービスを作成するための私の試みです。
問題は、このオーバーレイ ネットワークnginx1-net
が作成した管理ノードにのみ表示され、他のノードには表示されないことです。(これは、サービスがデフォルトで docker0 と eth0 にアタッチされるためだと思います)
これにより、定義した eth2 インターフェイスだけでなく、任意のインターフェイス (eth1、eth2、および eth3) の任意の IP アドレスからこのサービスにアクセスできる状況が発生します。
オーバーレイ ネットワークと Docker サービスを単一のネットワーク インターフェイスにバインドするにはどうすればよいですか?
注:私の全体的な目標は、各コンテナーがルーティング可能な外部 IP アドレスを持つ Docker サービスを作成することです。
docker - ルーティング可能な IP アドレスを持つコンテナーをデプロイできるコンテナー オーケストレーション ツールはどれですか?
各コンテナを独自の特定のルーティング可能な IP アドレスにバインドすることを最終目標として、いくつかのノードの分散システムにコンテナを展開しようとしています。これは、個々の IP アドレスを必要とする Docker コンテナーにハードウェア ロード バランサーを使用したいという事実によるものです。
docker コマンド ライン ツールを使用して、複数のネットワーク インターフェイス (eth0:0、eth0:1、eth0:2、eth1、eth2、eth3 など) を持つサーバー上で実行されているコンテナーを起動することで、ルーティング可能な IP アドレスを持つコンテナーを実現できます。そのうち、独自のルーティング可能な IP アドレスがあります。その後、各コンテナーは、特定のオプションを使用して、インターフェイスの 1 つの利用可能な IP アドレスに接続でき-p
ます。
たとえば、nginx コンテナーをアタッチしたい1.2.3.4
onの IP がある場合、次のコマンドでアタッチできます。eth0:2
これの制限は、docker を実行しているインスタンスごとにルーティング可能な IP アドレスの特定のプールがあることです。オーケストレーション ツールは、そのプールの IP アドレスのみを使用でき、各 IP アドレスを 1 回だけ使用できる必要があります。(これのスケーリングの問題について心配する必要はありません。より多くの IP アドレスは、openstack 管理ノードからいつでも追加できます)。
これまで、docker サービスを使用して docker swarm 1.12 でこれを達成しようとしましたが、これがそのオーケストレーション ツールの意図した使用例ではないことは明らかです。
そこで、次のことができる新しいオーケストレーション ツールを探しています。
- 複数のサーバー上の docker コンテナーを、docker コンテナーの作成時に定義された特定の IP アドレスにバインドします。
- 各サーバーには、選択できる特定の IP アドレスのプールがあること、およびプールがノードごとに異なることを理解してください。
- 自分自身をオーバーライドせず、実行中の 2 つのコンテナーを同じ IP アドレスにバインドしようとします。
また、次のようなコンテナ オーキストレーション ツールのより一般的な側面も提供する必要があります。
- ノードに障害が発生した場合に、コンテナーの自動再スケジュールを提供します。
- 新しいコンテナが作成されて、死んでしまった古いコンテナを置き換える自己修復を提供します。
- コンテナ展開用のシンプルなシステムを提供します。
また、各サーバーは領事クラスターの一部でもあることに注意してください。私の非常に具体的なネットワーク要件に基づいて、最善の解決策は、consul ウォッチ、consul ヘルスチェック、consul キー値を組み合わせてシステム全体を管理することであると思われます (コンテナ化された古いバージョンの docker を使用する可能性があります)。 swarm) を使用して、docker を実行している各インスタンスで個人的に作成されたスクリプトを実行し、1 つのサーバーが実行すべき適切なアクション コースを決定します。
ただし、目的のためには一般的なコンテナ オーケストレーション ツールを使用したいと考えています。他のコンテナ オーケストレーション ツール (mesos、kubernetes、nomad など) でこのレベルの Docker ポート マッピングのカスタマイズが可能かどうかを知りたいですか? それとも、カスタムの領事ヘルス チェックとウォッチを使用したほうがよいのでしょうか?
また、ubuntu 14.04 サーバー上のプライベート openstack クラウドでシステムを実行していることにも注意してください (フリートはオプションではありません)。