2016-06-12 4 views
1

をホストするために、より良い最新のソリューション、次の問題:ドッカーコンテナは、私が必要とするルーティング

問題:私は手動でホストに動的にドッキングウィンドウブリッジからルートを可能にするためにのiptableルールを作成する必要があります。それ以外の場合、デフォルトでは、ドッカーネットワークからドッカーホスト自体へのルートがないため、コンテナaはコンテナbに接続できません。

私は次のセットアップがあります適切にJIRAとConfluenceの間アトラシアンのアプリケーションへのリンクを機能させるためには

container-nginx (docker) 
| 
|-container-jira (docker) (https://jira.example.com) 
|-container-confluence (docker) (https://confluence.example.com) 

を:

セットアップ全体にdocker-composeを使用し、すべてのコンテナは同じネットワーク内にあります。デフォルトではこれはうまくいきません。私はホスト "confluence.example.com"と "jira.example.com"の両方のコンテナで "no route to host"を取得します。ドッカーネットワーク内のすべてのコンテナには、ドッカーホスト自体へのルートがないためです。

現在、セットアップが初期化されるたびに、ID「br-wejfiweji」を持つ動的に作成されたドッカーブリッジからホストにiptableルールを手動で作成します。

これは面倒です.Docker 1.11.xでこれを行うには「新しい方法」や「良い方法」がありますか?

答えて

1

ドッカー作成バージョン2は、すべてのコンテナが互いに見えるようにするネットワークを作成します。参照「Networking in Composeは、」あなたのコンテナは、右のホスト名を使用して作成されている場合

(ドッカ1.10以降)、それはjira.example.comconfluence.example.comdocker-compose.yml hostname directiveを参照)、nginxのはjira.example.comconfluence.example.comに直接プロキシ渡すことができます。
これらの2つのホスト名は、3つの(nginx、jiraおよびコンフルエンス)コンテナのdocker-composeによって作成されたネットワーク内の適切なIPアドレスに解決されます。

私は合流にアクセスするとき、常にnginxのを使用するJIRAためには、nginxの(合流にnginxのものの別名)として合流を参照するには、JIRAためにaliasを使用するようにコメントで示唆しています。

version: '2' 

services: 
    # HTTPS-ReverseProxy 
    nginx: 
    image: blacklabelops/nginx 
    container_name: nginx 
    networks: 
     default: 
     aliases: 
      - 'crucible.example.com' 
      - 'confluence.example.com' 
      - 'crowd.example.com' 
      - 'bitbucket.example.com' 
      - 'jira.example.com' 
    ports: 
     - '443:443' 
+0

私は既にドッカー作成2を使用しています。私の場合、ルートはjira - > nginx(https) - > confluenceでなければなりません。 1つのnginxコンテナに複数のホスト名(例:jira.example.com、confluence.example.com)を追加するにはどうすればよいですか? – blacklabelops

+0

@maybeg version2は、すべてのコンテナが互いに見えることを意味します.jiraはnginxとコンフルエンスを見ます。 'docker exec bash'を試して、他の2つのコンテナにpingできるかどうか確認してください。 – VonC

+0

それぞれのインスタンスがhttpsプロトコルによって他のインスタンスに対応しているため、nginx経由でルーティングする必要があります。アプリケーションリンクは、ATL内のリンクを生成するためにatlassian製品によって使用されます。 httpリンクはインスタンス間で動作し、それらはpingしてお互いを見ますが、UI内で生成されたhttpリンクはブラウザ内では機能しません。 – blacklabelops

関連する問題