2017-07-06 18 views
0

私のホストマシンでは、xyz.example.comがnginxで動作しています。それはドッキングされておらず、外部からアクセスできないので、単にローカルの開発環境に使用されています。Docker:ローカルサーバーxyz.example.comをドッカーコンテナからホストマシン上で実行する方法

ドッカーのコンテナ内からアクセスしたいと考えています。例えば

、私は私のドッキングウィンドウコンテナ内から次の操作を実行できるようにしたいと思います:

curl xyz.example.com 

と私は私のホストマシン上でコマンドを実行したときに私が見る同じ出力を参照してください。

また、私はドッカー作成を使用しています。

+0

あなたが受けているエラーは何ですか? – Robert

+0

'curl:(6)ホストを解決できませんでした。 ' –

+0

ドッカーを使っていますか? – Robert

答えて

0

ホストのネットワークに直接ルーティングされていない可能性があります。 This questionが役に立ちます。

1

ホストの/etc/host(あなたはプライベートサーバーだと言われています)に宣言されているため、あなたのコンテナはxyz.example.comを知らないと思いますか?

その後、extra_hostとしてホストを追加することができます。

services: 
    some-service: 
    extra_hosts: 
     - "xyz.example.com:HOST_BRIDGE_IP" 

extra_hostは、コンテナの/etc/hostでホスト名のマッピングを追加します。

とドッキングウィンドウブリッジでのIPとHOST_BRIDGE_IPを置き換えるあなたのdocker-compose.ymlを実行します。

HOST_BRIDGE_IP=$(docker network inspect bridge \ 
    --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}') \ 
&& sed -e "s/HOST_BRIDGE_IP/${HOST_BRIDGE_IP}/g" \ 
docker-compose.yml | docker-compose --file - up 

これは、サーバーでDNSに基づいて仮想ホストの解決を可能にします。

編集:これはちょっと残酷すぎるようですが、誰かがより良い提案をしていますか?

関連する問題