2016-03-22 24 views
7

Dockerエンジン1.10(1.08)にアップグレードした後、リバースプロキシ設定がもう機能していないことに気がつきました。ホスト名/名前でDockerコンテナにpingできません

私のすべてのアプリ(逆プロキシ用のNginxを含む)はコンテナ化されており、コンテナ名で通信していました。ここでnginxの中で仮想ホスト部分の例です:今

server { 
    server_name jobs; 
    location/{ 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_pass http://jenkins:8080; 
    } 
} 

、私は唯一のIP経由でnginxのコンテナからジェンキンスコンテナをpingではなく、もはやコンテナ名を経由することができます。アップデート、再デプロイメントなどのためにIPが絶えず変更されているので、リバースプロキシ設定でIPを定義することを回避するネットワーキングの仕方が改善されていますか?

レガシー--linkは、多くのコンテナがあるため、オプションではありません。

+0

私は、今後のドッキングウィンドウ1.12とそのドッキングウィンドウの群れモードの光の中で答えを更新しました。 – VonC

答えて

1

docker network connectdocker runが付属するnetwork-scope aliasを確認できます。

エイリアスを持つコンテナを起動すると、NGinxは設定内のエイリアスにリバースプロキシをリバースできます。
実行時に、そのエイリアスは、開始したコンテナの後にに解決されます。

Docker Networking: Auto-discovering host names in a bridge network」の例を参照してください。
ドッカーの1.10+ネットワークでコンテナを管理するにはwill need a key-value storeが必要です。


ノート(2016年7月)ドッキングウィンドウ1.12とそのswarm modeと、それも簡単になります。
は、例えば、「The beautiful networking stack in Docker Swarm mode

を参照してくださいドッキングウィンドウの群れはあなたのために、オーバーレイネットワークキーと値のストアを定義します!コンテナはお互いを見ます。

別の具体的な例:「NGINX as a Reverse Proxy for Docker Swarm Clusters

関連する問題