Đó phải là những gì --link
dành cho , ít nhất là đối với phần tên máy chủ.
Với docker 1.10 và PR 19242 , đó sẽ là:
docker network create --net-alias=[]: Add network-scoped alias for the container
(xem phần cuối bên dưới)
Đó là những gì Cập nhật/etc/hosts
chi tiết tệp
Ngoài các biến môi trường, Docker thêm một mục nhập máy chủ cho vùng chứa nguồn vào /etc/hosts
tệp.
Ví dụ: khởi chạy máy chủ LDAP:
docker run -t --name openldap -d -p 389:389 larrycai/openldap
Và xác định một hình ảnh để kiểm tra máy chủ LDAP đó:
FROM ubuntu
RUN apt-get -y install ldap-utils
RUN touch /root/.bash_aliases
RUN echo "alias lds='ldapsearch -H ldap://internalopenldap -LL -b
ou=Users,dc=openstack,dc=org -D cn=admin,dc=openstack,dc=org -w
password'" > /root/.bash_aliases
ENTRYPOINT bash
Bạn có thể hiển thị ' openldap
' vùng chứa dưới dạng ' internalopenldap
' trong hình ảnh thử nghiệm với - liên kết:
docker run -it --rm --name ldp --link openldap:internalopenldap ldaptest
Sau đó, nếu bạn nhập 'lds', bí danh đó sẽ hoạt động:
ldapsearch -H ldap://internalopenldap ...
Điều đó sẽ trả lại mọi người. Ý nghĩa internalopenldap
đạt được chính xác từ ldaptest
hình ảnh.
Tất nhiên, docker 1.7 sẽ bổ sung libnetwork
, cung cấp triển khai Go gốc để kết nối các vùng chứa. Xem bài đăng trên blog .
Nó giới thiệu một kiến trúc hoàn chỉnh hơn, với Mô hình mạng vùng chứa (CNM)

Điều đó sẽ Cập nhật Docker CLI với các lệnh "mạng" mới và ghi lại cách -net
cờ "" được sử dụng để gán vùng chứa cho mạng.
docker 1.10 có một phần mới Bí danh phạm vi mạng , hiện đã được ghi nhận chính thức trongnetwork connect
:
Trong khi các liên kết cung cấp độ phân giải tên riêng được bản địa hóa trong vùng chứa, thì bí danh phạm vi mạng cung cấp cách để vùng chứa được phát hiện bằng tên thay thế bởi bất kỳ vùng chứa nào khác trong phạm vi của một mạng cụ thể.
Không giống như bí danh liên kết, được xác định bởi người tiêu dùng dịch vụ, bí danh trong phạm vi mạng được xác định bởi vùng chứa đang cung cấp dịch vụ cho mạng.
Tiếp tục với ví dụ trên, tạo một vùng chứa khác isolated_nw
với bí danh mạng.
$ docker run --net=isolated_nw -itd --name=container6 -alias app busybox
8ebe6767c1e0361f27433090060b33200aac054a68476c3be87ef4005eb1df17
--alias=[]
Thêm bí danh phạm vi mạng cho vùng chứa
Bạn có thể sử dụng --link
tùy chọn để liên kết vùng chứa khác với bí danh ưu tiên
Bạn có thể tạm dừng, khởi động lại và dừng các vùng chứa được kết nối với mạng. Các vùng chứa bị tạm dừng vẫn được kết nối và có thể được phát hiện khi kiểm tra mạng. Khi vùng chứa bị dừng, vùng chứa sẽ không xuất hiện trên mạng cho đến khi bạn khởi động lại.
Nếu được chỉ định, (các) địa chỉ IP của vùng chứa sẽ được áp dụng lại khi khởi động lại vùng chứa đã dừng. Nếu địa chỉ IP không còn nữa, vùng chứa không thể khởi động.
Một cách để đảm bảo rằng địa chỉ IP có sẵn là chỉ định --ip-range
khi tạo mạng và chọn (các) địa chỉ IP tĩnh từ bên ngoài phạm vi đó. Điều này đảm bảo rằng địa chỉ IP không được cấp cho một vùng chứa khác trong khi vùng chứa này không có trên mạng.
$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
$ docker network connect --ip 172.20.128.2 multi-host-network container2
$ docker network connect --link container1:c1 multi-host-network container2