Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Rangkaian kontena Docker di bawah Linux: Bagaimana untuk menyediakan sambungan rangkaian dan komunikasi antara bekas?

Rangkaian kontena Docker di bawah Linux: Bagaimana untuk menyediakan sambungan rangkaian dan komunikasi antara bekas?

王林
王林asal
2023-08-01 18:41:221706semak imbas

Rangkaian kontena docker di bawah Linux: Bagaimana untuk menyediakan sambungan rangkaian dan komunikasi antara bekas?

Apabila menggunakan Docker untuk penggunaan aplikasi, sambungan rangkaian dan komunikasi antara bekas adalah isu yang sangat penting. Artikel ini akan memperkenalkan cara menyediakan sambungan rangkaian bekas dalam persekitaran Linux dan menyediakan beberapa contoh kod biasa.

Terdapat berbilang mod rangkaian untuk dipilih dalam Docker, tiga yang paling biasa digunakan ialah: mod jambatan, mod hos dan mod rangkaian Tindanan. Dalam mod jambatan, Docker akan mencipta antara muka rangkaian maya untuk setiap bekas dan menyambungkan bekas melalui jambatan rangkaian kongsi. Dalam mod hos, bekas akan terus menggunakan antara muka rangkaian hos. Mod rangkaian Tindanan menyediakan penyelesaian untuk komunikasi kontena merentas hos.

Mula-mula, mari perkenalkan cara menyediakan sambungan rangkaian kontena menggunakan mod jambatan. Kita boleh menggunakan alat baris arahan Docker atau Docker Compose untuk mencapai ini.

Menggunakan alat baris arahan:

docker run -d --name container1 --network bridge image1
docker run -d --name container2 --network bridge image2

Menggunakan Docker Compose:

version: '3'
services:
  container1:
    image: image1
    networks:
      - bridge
  container2:
    image: image2
    networks:
      - bridge
networks:
  bridge:
    driver: bridge

Dalam contoh di atas, kami mencipta dua bekas container1 dan container2 dan menyambungkannya ke rangkaian yang dipanggil bridge. Dengan persediaan ini, bekas boleh berkomunikasi antara satu sama lain menggunakan nama bekas.

Berikut ialah contoh menyediakan sambungan rangkaian kontena menggunakan mod hos:

Menggunakan alat baris arahan:

docker run -d --name container1 --network host image1
docker run -d --name container2 --network host image2

Menggunakan Docker Compose:

version: '3'
services:
  container1:
    image: image1
    networks:
      - host
  container2:
    image: image2
    networks:
      - host
networks:
  host:
    driver: host

Dalam persediaan ini, bekas akan menggunakan antara muka rangkaian hos secara langsung, jadi mereka Komunikasi boleh dijalankan melalui alamat IP hos.

Akhir sekali, kami memperkenalkan tetapan untuk komunikasi antara bekas menggunakan mod rangkaian Tindanan. Mod ini memerlukan penggunaan menggunakan Docker Swarm.

Pertama, kita perlu memulakan Swarm:

docker swarm init

Kemudian, kami mencipta rangkaian Tindanan:

docker network create -d overlay my-network

Seterusnya, kami mencipta perkhidmatan dan menyambungkannya ke rangkaian:

docker service create --name service1 --network my-network image1
docker service create --name service2 --network my-network image2

Menggunakan mod rangkaian Tindanan boleh mencapai rentas- hos Komunikasi kontena dan memastikan keselamatan dan kebolehpercayaan komunikasi.

Ringkasnya, artikel ini memperkenalkan kaedah menyediakan sambungan rangkaian dan komunikasi bekas Docker dalam persekitaran Linux, termasuk mod jambatan, mod hos dan mod rangkaian Tindanan. Kaedah ini boleh dipilih dan digunakan mengikut keperluan khusus untuk membantu kami mengurus rangkaian kontena dengan lebih baik apabila menggunakan Docker.

Contoh kod adalah untuk rujukan sahaja. Sila buat pelarasan dan konfigurasi yang sepadan mengikut situasi tertentu semasa penggunaan sebenar. Melalui tetapan rangkaian yang fleksibel, kami boleh membina sistem aplikasi kontena yang cekap dan boleh dipercayai dengan mudah.

Atas ialah kandungan terperinci Rangkaian kontena Docker di bawah Linux: Bagaimana untuk menyediakan sambungan rangkaian dan komunikasi antara bekas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn