Yang harus apa --link
bagi , setidaknya untuk bagian hostname.
Dengan buruh pelabuhan 1,10, dan PR 19242 , itu akan menjadi:
docker network create --net-alias=[]: Add network-scoped alias for the container
(lihat bagian terakhir di bawah)
Itulah yang memperbarui/etc/hosts
detail file
Selain variabel lingkungan, Docker menambahkan entri host untuk penampung sumber ke /etc/hosts
file.
Misalnya, luncurkan server LDAP:
docker run -t --name openldap -d -p 389:389 larrycai/openldap
Dan tentukan gambar untuk menguji server LDAP tersebut:
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
Anda dapat mengekspos ' openldap
' container as ' internalopenldap
' dalam gambar uji dengan --link:
docker run -it --rm --name ldp --link openldap:internalopenldap ldaptest
Kemudian, jika Anda mengetik 'lds', alias itu akan berfungsi:
ldapsearch -H ldap://internalopenldap ...
Itu akan mengembalikan orang. Makna internalopenldap
dicapai dengan benar dari ldaptest
gambar.
Tentu saja, buruh pelabuhan 1.7 akan menambahkan libnetwork
, yang menyediakan implementasi Go asli untuk menghubungkan kontainer. Lihat postingan blog .
Ini memperkenalkan arsitektur yang lebih lengkap, dengan Model Jaringan Kontainer (CNM)
Itu akan memperbarui Docker CLI dengan perintah "jaringan" baru, dan mendokumentasikan bagaimana -net
bendera " " digunakan untuk menetapkan kontainer ke jaringan.
buruh pelabuhan 1.10 memiliki bagian baru alias Jaringan-lingkup , sekarang secara resmi didokumentasikan dinetwork connect
:
Sementara tautan menyediakan resolusi nama pribadi yang dilokalkan dalam wadah, alias cakupan jaringan menyediakan cara agar wadah dapat ditemukan dengan nama alternatif oleh wadah lain dalam lingkup jaringan tertentu.
Tidak seperti alias tautan, yang ditentukan oleh konsumen layanan, alias cakupan jaringan ditentukan oleh wadah yang menawarkan layanan ke jaringan.
Melanjutkan contoh di atas, buat penampung lain isolated_nw
dengan alias jaringan.
$ docker run --net=isolated_nw -itd --name=container6 -alias app busybox
8ebe6767c1e0361f27433090060b33200aac054a68476c3be87ef4005eb1df17
--alias=[]
Tambahkan alias cakupan jaringan untuk penampung
Anda dapat menggunakan --link
opsi untuk menautkan penampung lain dengan alias yang disukai
Anda dapat menjeda, memulai ulang, dan menghentikan kontainer yang terhubung ke jaringan. Kontainer yang dijeda tetap terhubung dan dapat diungkapkan dengan pemeriksaan jaringan. Saat penampung dihentikan, penampung tidak muncul di jaringan sampai Anda memulai ulang.
Jika ditentukan, alamat IP penampung diterapkan kembali saat penampung yang dihentikan dimulai ulang. Jika alamat IP tidak lagi tersedia, penampung gagal untuk memulai.
Salah satu cara untuk menjamin bahwa alamat IP tersedia adalah dengan menentukan --ip-range
saat membuat jaringan, dan memilih alamat IP statis dari luar rentang itu. Ini memastikan bahwa alamat IP tidak diberikan ke penampung lain saat penampung ini tidak ada di jaringan.
$ 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