-1

これは、少なくとも私が見つけることができた、最初は似ているように見える以前の質問の複製ではないことに注意してください。

最近のバージョンの Windows docker を実行して、テスト目的でコンテナーを localhost に接続できるようにしようとしています。データベースを大規模なネットワークに公開しないようにするために、NAT モードの Virtualbox を使用する正当な理由があります。

セットアップ プロセスは完全に自動化する必要があります。これは、VBox を NAT モードのままにしておくためのもう 1 つのポイントであり、中間の複雑さです。

私のビルド プロセスには、次のような行が含まれます。

docker run --volumes-from mystore -p 5671:5671 -p 5672:5672 -p 15672:15672 -p 15671:15671 -p 15670:15670 --name myrmyq -d myrmqimage
docker run -p 80:80 -p 443:443 --link mypg:mypg --link myrmq:myrmq --name myserver -d myserverimage

外の世界との接続を可能にするために、次のようなことも行います。

vboxmanage controlvm "myvm" natpf1 "tcp-port15672,tcp,,15672,,15672" (not exact, this is from python script with lots of quotes)

NAT ルーティングのおかげで、コンピューターの特定のポートのみが、コンピューターの外部から必要なコンテナーにアクセスできるようになります (別のコンテナーの Postgres ポートなど)。必要なポートのみが外部に公開されており、うまく機能しています。

また、docker コンテナーと接続するマシン上で実行されているサービスがあるため、たとえば上記のデータベースをネットワークに公開することなく、すべての -p ポートをローカルに公開すると便利です。

ただ、Docker でこのように実行されているソフトウェアが、localhost で実行されている Django サーバーに接続できるようにする必要があります。VBox のネットワークをブリッジ モードに設定せずに、すべての設定をウィンドウの外に投げ出さずにこれを行う方法はありますか? ブリッジを行う必要がある場合、自動化された方法で確実に行うことができますか? または、純粋にテストのための回避策として、上記のサーバーを実行しているローカル ネットワーク (つまり、私の Macbook) 上の別のコンピューターに接続することはできますか?

ヘルプとガイダンスをありがとう。

4

1 に答える 1

0

将来これを見つけた人のために、

純粋にテスト用だったので、ブリッジ ネットワーク アダプターを3 番目のインターフェイスとして一時的に追加しました。純粋な NAT ネットワークでは不可能のようです。

于 2016-07-15T19:49:10.523 に答える