2016-05-22 5 views
4

私はドッカーマシンとドッカーの作成を使用します。docker-composeサービスは指定されたインターフェイスでリッスンします

私が使用するドッカーマシンには、複数のインターフェイスがあります。

の特定のインターフェイスでのみサービスを強制的にリッスンする方法はありますか?このインターフェイスのIPアドレスをポートセクションに定義しないでください。

今私は、ドッキングウィンドウ-compose.yml

ports: 
     - "10.5.1.28:80:80" 
     - "10.5.1.28:2222:22" 
     - "10.5.1.28:443:443" 

でこれを使用しかし、私は変更の場合には、すべてのIPを書き換えるために持っているとして、それは非常に便利ではありません。

これを行う簡単な方法はありますか?

+0

あなたは、このためのソリューションを見つけますか? – blackbird

答えて

0

1つの優雅なソリューションは、外部ネットワークを作成することです。

サービスの定義:

nginx1: 
    build: ./nginx 
    ports: 
     - "80:80" 
    networks: 
     - intranet  
    nginx2: 
    build: ./nginx 
    ports: 
     - "80:80" 
    networks: 
     - internet 

ネットワークの定義:外部ネットワーク(インターネット&イントラネットに)使用して2つのnginxのと例えば

networks: 
    internet: 
     external: true 
    intranet: 
     external: true 

は、次にあなたを前に最初のアップドッキングウィンドウ構成します外部ネットワークを作成する必要があります

この例では、192.168.178.69は、インターネット側のIPで、イントラネット側の10.5.1.22

docker network create -d bridge -o \ 
     com.docker.network.bridge.host_binding_ipv4=192.168.178.69 internet 

docker network create -d bridge -o \ 
     com.docker.network.bridge.host_binding_ipv4=10.5.1.22 intranet 
関連する問題