簡単な質問だと思いますが、Docker-composeのドキュメントからはまだわかりません。リンクとexternal_linksの違いは何ですか?
コアのdocker-composeが必要で、コアリンクを上書きせずに拡張したいので、external_linksが好きです。
正確には、elasticsearchに依存するlogstashをセットアップしようとしています。 Elasticsearchはコアdocker-composeにあり、logstashは依存しているものにあります。したがって、logstashがリンクとして必要とするため、依存するdocker-composeのエラスティック検索を参照として定義する必要がありました。ただし、Elasticsearchにはすでに独自のリンクがあり、依存リンクでは繰り返さないようにします。
リンクの代わりにexternal_linkでそれを行うことができますか?
リンクは、リンクがリンクの前に最初に起動していることを確認することを知っていますが、external_linkも同じようになりますか?
どんな助けでもありがたいです。ありがとう。
同じdocker-compose.yml内のコンテナーをリンクする場合は、links
を使用します。必要なのは、サービス名へのリンクを設定することだけです。このような:
---
elasticsearch:
image: elasticsearch:latest
command: elasticsearch -Des.network.Host=0.0.0.0
ports:
- "9200:9200"
logstash:
image: logstash:latest
command: logstash -f logstash.conf
ports:
- "5000:5000"
links:
- elasticsearch
Docker-compose.yml内のコンテナーを、同じdocker-compose.ymlに含まれていないか、別の方法で開始された別のコンテナーにリンクする場合は、external_links
を使用して、コンテナの名前へのリンク。このような:
---
logstash:
image: logstash:latest
command: logstash -f logstash.conf
ports:
- "5000:5000"
external_links:
- my_elasticsearch_container
何らかの理由でユースケースで同じdocker-compose.ymlに入れることができない場合を除き、最初の方法をお勧めします
external_link
はdocker-compose up
コマンドのlinks
と同じことはしないと思います。
links
は、コンテナが起動してetc/hosts
ファイルで使用されるIPアドレスを取得するまで待機します。したがって、external_link
には、docker-composeファイルに記述されているIP:hostname値の名前がすでにあります。
さらに リンクは廃止される予定です