2016-02-02 21 views
6

Credo sia una domanda semplice ma non riesco ancora a ottenerlo dai documenti di composizione di Docker. Qual è la differenza tra link e external_links?Link di collegamento docker vs external_links

Mi piace external_links perché voglio avere il core docker-compose e voglio estenderlo senza sovrascrivere i collegamenti principali.

Che cosa esattamente ho, sto provando a installare logstash che dipende da elasticsearch. Elasticsearch si trova nel docker principale: comporre e il logstash è nel secondo. Quindi ho dovuto definire la ricerca elastica nella finestra mobile derivata-comporre come riferimento, in quanto logstash ha bisogno di esso come collegamento. MA Elasticsearch ha già i suoi link che non voglio ripeterli in quello dipendente.

Posso farlo con external_link invece di link?

So che i collegamenti garantiranno che il collegamento sia attivo prima del collegamento, il link esterno farà lo stesso?

Qualsiasi aiuto è apprezzato. Grazie.

risposta

12

Usa links quando si desidera collegare insieme i contenitori all'interno della stessa finestra mobile-compose.yml. Tutto quello che devi fare è impostare il collegamento al nome del servizio. Come questo:

--- 
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 

Se si desidera collegare un contenitore all'interno della finestra mobile-compose.yml ad un altro contenitore che non è stato incluso nella stessa finestra mobile-compose.yml o iniziato in un modo diverso, allora si può usare external_links e si dovrebbe impostare il collegamento al nome del contenitore. Come questo:

--- 
logstash: 
    image: logstash:latest 
    command: logstash -f logstash.conf 
    ports: 
    - "5000:5000" 
    external_links: 
    - my_elasticsearch_container 

Vorrei suggerire il primo modo a meno che il caso d'uso per qualche motivo è necessario che essi non possono essere nella stessa finestra mobile-compose.yml

+0

potrebbe essere la pena per il collegamento alla documentazione ufficiale così: https://docs.docker.com/compose/compose-file/#links e https://docs.docker.com/compose/compose-file/#external-links – dnephin

0

Penso che external_link non faccia lo stesso come links nel comando docker-compose up.

links attende contenitore per avviare e ottenere l'indirizzo IP che viene utilizzato in etc/hosts di file, quindi external_link ha già IP: nome valori hostname descritto nel file di finestra mobile-composizione.

Inoltre links will be deprecated