2016-02-02 27 views
6

Tôi tin rằng đó là câu hỏi đơn giản nhưng tôi vẫn không nhận được nó từ tài liệu soạn thảo Docker. Sự khác nhau giữa các liên kết và external_links là gì?Liên kết soạn thảo trình soạn thảo so với external_links

Tôi thích external_links vì tôi muốn có trình tạo lõi docker và tôi muốn mở rộng nó mà không ghi đè các liên kết cốt lõi.

Chính xác tôi có gì, tôi đang cố gắng thiết lập nhật ký phụ thuộc vào elasticsearch. Elasticsearch nằm trong bộ docker-compose cốt lõi và logstash nằm trong phần phụ thuộc. Vì vậy, tôi đã phải xác định tìm kiếm đàn hồi trong docker-compose phụ thuộc như là một tham chiếu như logstash cần nó như là một liên kết. NHƯNG Elasticsearch đã có liên kết riêng của nó mà tôi không muốn lặp lại chúng trong một phụ thuộc.

Tôi có thể làm điều đó với external_link thay vì liên kết không?

Tôi biết rằng các liên kết sẽ đảm bảo rằng liên kết được lên trước trước khi liên kết, liên kết external_link có thực hiện tương tự không?

Mọi trợ giúp đều được đánh giá cao. Cảm ơn.

Trả lời

12

Sử dụng links khi bạn muốn liên kết lại với nhau container trong cùng một Docker-compose.yml. Tất cả những gì bạn cần làm là đặt liên kết đến tên dịch vụ. Như thế này:

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

Nếu bạn muốn liên kết một container bên trong Docker-compose.yml để một container mà không được bao gồm trong cùng một Docker-compose.yml hoặc bắt đầu một cách khác nhau sau đó bạn có thể sử dụng external_links và bạn sẽ đặt liên kết đến tên của vùng chứa. Như thế này:

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

tôi sẽ đề nghị cách đầu tiên trừ trường hợp sử dụng của bạn vì một lý do đòi hỏi rằng họ không thể tham gia cùng Docker-compose.yml

+0

Có thể là giá trị nó để liên kết đến các tài liệu chính thức cũng như: https://docs.docker.com/compose/compose-file/#links và https://docs.docker.com/compose/compose-file/#external-links – dnephin

0

Tôi nghĩ rằng external_link sẽ không thực hiện tương tự như links trong lệnh docker-compose up.

links đợi vùng chứa khởi động và nhận địa chỉ IP được sử dụng trong etc/hosts tệp, do đó external_link đã có IP: tên giá trị tên máy chủ được mô tả trong tệp docker-compose.

Hơn nữa links will be deprecated

Các vấn đề liên quan