Rumah >Operasi dan penyelenggaraan >Docker >Cara menggunakan rangkaian maya docker

Cara menggunakan rangkaian maya docker

PHPz
PHPzasal
2023-04-19 09:15:54932semak imbas

Docker ialah salah satu platform kontena paling popular pada masa ini, yang boleh memudahkan penggunaan dan pengurusan aplikasi. Salah satu ciri yang paling penting ialah rangkaian maya Docker, yang membantu pengguna mencipta berbilang bekas pada mesin fizikal yang berasingan dan bekerja secara kolaboratif sambil menyediakan pengasingan dan keselamatan rangkaian yang baik.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangkaian maya docker untuk membina komunikasi dan kebolehoperasian rangkaian antara bekas, dan juga memperkenalkan kepentingan pengasingan dan keselamatan rangkaian.

  1. Buat dan urus rangkaian maya docker

Pertama, kita perlu mencipta rangkaian maya docker. Anda boleh menggunakan arahan berikut untuk mencipta rangkaian maya bernama "my-network":

docker network create my-network

Selepas mencipta rangkaian, anda boleh menggunakan arahan berikut untuk menyenaraikan rangkaian maya docker semasa:

docker network ls

Hasil yang dijalankan adalah seperti berikut:

NETWORK ID          NAME                DRIVER              SCOPE
6e8c0391c9ac        bridge              bridge              local
a8a551c45849        host                host                local
d6a050011a56        my-network          bridge              local
69f86bb8f6bc        none                null                local

Kini kami telah mencipta rangkaian maya bernama "rangkaian saya", yang boleh digunakan untuk mencipta bekas dan berkomunikasi.

  1. Sambungkan bekas ke rangkaian maya docker

Seterusnya, kami akan mencipta dua bekas dan menyambungkannya ke rangkaian maya "rangkaian saya" yang baru kami buat . Kami menggunakan parameter --network untuk menyambungkan bekas ke rangkaian maya.

Gunakan arahan berikut untuk memulakan bekas bernama "pelayan web" dan sambungkannya ke rangkaian maya:

docker run --name webserver --network my-network -p 8080:80 -d nginx

Dalam arahan di atas, kami menggunakan imej "nginx" untuk Mencipta kami bekas. -pParameter memetakan port bekas docker "80" ke port mesin fizikal "8080".

Kami juga boleh mencipta bekas kedua dan menyambungkannya ke rangkaian maya menggunakan kaedah yang serupa:

docker run --name database --network my-network -e MYSQL_ROOT_PASSWORD=password -d mysql

Dalam arahan di atas, kami menggunakan imej "mysql" untuk mencipta bekas kami dan tetapkan kata laluan akar MySQL.

Kini kami telah mencipta dua bekas dan menyambungkannya ke rangkaian maya yang kami cipta.

  1. Menguji komunikasi antara bekas

Untuk menguji bahawa kontena kami berjaya berkomunikasi, kami boleh menggunakan halaman HTML ringkas dalam "pelayan web".

Mula-mula, kita masuk ke dalam bekas "pelayan web" dan pasang penyunting teks nano menggunakan arahan berikut:

docker exec -it webserver apt-get update
docker exec -it webserver apt-get install nano

Kemudian, kami mencipta halaman index.html mudah menggunakan teks nano editor:

docker exec -it webserver nano /usr/share/nginx/html/index.html

Dalam halaman, kami menambah kandungan berikut:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to my website</title>
</head>
<body>
<p>Hello from webserver!</p>
<?php
$servername = "database";
$username = "root";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully to database";
?>
</body>
</html>

Dalam kod di atas, kami menambah mesej teks pada halaman dan skrip PHP untuk disambungkan ke pangkalan data MySQL "pangkalan data" dalam bekas.

Sekarang, kita hanya boleh menggunakan URL berikut pada penyemak imbas web mesin fizikal untuk membuka halaman:

http://127.0.0.1:8080

Halaman akan menunjukkan "Hello dari pelayan web dan sambungan berjaya maklumat.

Sementara itu, jika kita menjalankan arahan "docker log database" pada bekas "database", kita akan melihat output berikut:

...
Version: '5.7.22'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
2019-05-22T20:02:24.809716Z 0 [Note] Event Scheduler: Loaded 0 events
Connected successfully to database

Ini menunjukkan bahawa komunikasi antara kedua-dua bekas OK, dan halaman ujian kami boleh berjaya menyambung ke pangkalan data MySQL pada bekas "pangkalan data".

  1. Pengasingan dan keselamatan rangkaian

Satu lagi peranan penting rangkaian maya docker ialah menyediakan pengasingan dan keselamatan rangkaian antara bekas yang berbeza. Contohnya, jika kami menjalankan kod hasad dalam bekas "pelayan web", ia tidak akan dapat mengakses dan menjejaskan bekas lain.

Selain itu, kami juga boleh menggunakan rangkaian maya docker untuk menyekat akses kontena ke rangkaian luaran. Sebagai contoh, kami boleh meningkatkan keselamatan aplikasi kami dengan mencipta rangkaian maya dan memastikan bahawa bekas hanya boleh berkomunikasi dengan bekas lain dalam rangkaian itu dan tidak boleh mengakses bekas lain di Internet.

  1. Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan rangkaian maya docker untuk menyambungkan bekas yang berbeza dan membolehkan komunikasi antara bekas. Kami juga mempelajari cara rangkaian maya docker menyediakan pengasingan dan keselamatan rangkaian.

Rangkaian maya ialah ciri yang sangat penting dalam docker, yang boleh digunakan untuk membina aplikasi kontena yang berkuasa dan menyediakan keselamatan yang baik. Jika anda membina aplikasi menggunakan docker, pastikan anda mempertimbangkan menggunakan rangkaian maya untuk meningkatkan keselamatan dan kecekapan aplikasi anda.

Atas ialah kandungan terperinci Cara menggunakan rangkaian maya docker. 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