2016-10-30 8 views
1

私は現在、docker-composeを使用して、(composeの外で作成された)一般的なエラーログサービスにリンクしたい一連のマイクロサービスをセットアップしています。external_linksを使用してDocker-composeを共通サービスに接続するにはどうすればよいですか?

私はcomposeの外でerrorHandlingサービスを作成しています。私は自分のアプリケーション内のホスト名の別名(「のErrorHandler」)を使用していますが、それらが接続されているように見えることはできません

version: '2' 
services: 
    my-service: 
    build: ../my-service 
    external_links: 
     - errorHandler 

docker run -d --name errorHandler 

は、その後、私は(要約)コンを実行します。どのようにすれば、サービスが複合ネットワーク内で発見されたかどうかを確認するにはどうすればよいですか?

答えて

4

リンクではなく、共有ドッカーネットワークを使用します。 docker network create errorNetdocker network connect errorNet errorHandlerのようなものを使用して、Dockerのネットワーク上に「errorHandler」コンテナを置きます。

version: '2' 
networks: 
    errorNet: 
    external: true 

services: 
    my-service: 
    build: ../my-service 
    networks: 
    - errorNet 

これは、ドッカーの内部DNSを使用してコンテナを接続します。

+0

ああ素晴らしいトリックです。私の奉仕の下で、私は「デフォルト」を指定しなければなりませんでした。この昨日はずっと長く過ごしました。単に不思議なことに、外部リンクは一般的に怒られていますか?なぜ私はいつもネットワークを使って賛成できない理由を考えているようだ。 – Tkwon123

+1

ドッキング業者がネットワークを導入した後、コンテナをリンクすることは廃止されたソリューションになった。私はそれを使う必要は一度もありません。 – BMitch

関連する問題