2016-01-11 42 views
6

Tôi có một ứng dụng hiện có bao gồm 4 vùng chứa docker chạy trên cùng một máy chủ. Chúng được liên kết với nhau bằng lệnh link.Vùng chứa được liên kết với Docker, Mạng Docker, Mạng Soạn - cách chúng tôi bây giờ 'liên kết' các vùng chứa

Tuy nhiên, sau khi một số nâng cấp của docker, hành vi link đã không được chấp nhận và đã thay đổi. Chúng tôi đang gặp sự cố khi vùng chứa đang mất liên kết với nhau ngay bây giờ.

Vì vậy, docker cho biết sử dụng tính năng Network mới hơn link vùng chứa ed. Nhưng tôi không thể thấy nó hoạt động như thế nào.

Nếu 2 vùng chứa trong cùng một mạng, thì các ô ENV giống nhau tự động được hiển thị trên các thùng chứa như thể chúng được liên kết?

Hoặc tệp máy chủ có được cập nhật với tên/địa chỉ IP vùng chứa chính xác không? Ngay cả sau một số docker restart?

Tôi không thể thấy trong tài liệu về cách vùng chứa có thể tìm thấy vị trí của mạng khác trong mạng của nó?

Ngoài ra, compose có vẻ được thiết lập đơn giản để liên kết vùng chứa và có thể tự động hóa một số điều này - sẽ soạn là cách để xác định nhiều ứng dụng vùng chứa? Hoặc là quá sớm để chạy nó trong sản xuất?

compose cũng hỗ trợ nhiều cấu hình máy chủ không?

tại một số điểm trong thời gian tới chúng tôi có lẽ sẽ cần phải di chuyển một trong những container đến một máy chủ khác nhau ....

Trả lời

3

Nếu 2 container đang ở trong cùng một mạng, là những ENV cùng VAR tự động tiếp xúc trên các thùng chứa như thể chúng được liên kết?

không, bây giờ bạn sẽ phải sử dụng tên vùng chứa làm tên máy chủ của chúng. Tính năng mạng mới không biết cổng nào sẽ được sử dụng. Hãy nghĩ về điều này khi 2 máy tính được cắm trên cùng một hub mạng. Cả hai có thể địa chỉ khác bằng tên máy chủ của nó.

là tệp máy chủ được cập nhật với tên/địa chỉ IP vùng chứa chính xác? Ngay cả sau khi một docker khởi động lại?

có, /etc/hosts tệp cho tất cả vùng chứa là một phần của mạng sẽ được cập nhật trực tiếp bởi công cụ đế.

Tôi không thể thấy trong tài liệu về cách vùng chứa có thể tìm thấy vị trí của mạng khác trong mạng của nó?

Sử dụng tên vùng chứa. Xem phần Connect containers của Làm việc với các lệnh mạng doc: Sau khi được kết nối, vùng chứa có thể giao tiếp bằng cách sử dụng địa chỉ IP hoặc tên của vùng chứa khác.

Ngoài ra, soạn có vẻ được thiết lập đơn giản để liên kết vùng chứa và có thể tự động tạo một cách để xác định nhiều ứng dụng vùng chứa? Hoặc là quá sớm để chạy nó trong sản xuất?

Soạn hỗ trợ tính năng mạng mới dưới dạng beta bằng cách cung cấp tùy chọn --x-networking. Bạn không được sử dụng nó đang được sản xuất (phiên bản Soạn thư hiện tại là 1,5).

Bên cạnh đó, việc thực hiện hiện nay là một chút bất tiện khi chúng ta phải sử dụng tên container đầy đủ trong đó bao gồm các tên dự án + _ + tên chứa + _1. documentation cho biết phiên bản tiếp theo (phiên bản hiện tại là 1.5) sẽ cải thiện điều này để chúng tôi không phải lo lắng về tên dự án để xử lý vùng chứa.

Soạn thảo có hỗ trợ nhiều cấu hình máy chủ không?

Có, trong conjonction với Swarm được nêu chi tiết trong overlay network documentation

+0

Awesome, cảm ơn cho câu trả lời chi tiết. Tôi sẽ xem xét soạn lại khi chúng tôi tìm cách chuyển sang thiết lập nhiều máy chủ, nhưng hiện tại có vẻ như tệp máy chủ là cách chuyển tiếp ... –

+0

bạn sẽ khám phá ra cổng mà vùng chứa đang hiển thị như thế nào? Giả sử tôi có 2 container, a, ánh xạ cổng 7474 và b. B có thể tìm thấy A thông qua tệp 'hosts' - http: // a, nhưng có cách nào để khám phá cổng được ánh xạ không? Với 'link' bạn có thể kiểm tra một biến số env var. –

+0

Không có bản dịch cổng trong mạng. Cổng có thể khác nhau chỉ khi bạn _publish_ một cổng container trên máy chủ Docker, không phải khi bạn chỉ _expose_ một cổng – Thomasleveil

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