Maison  >  Article  >  Opération et maintenance  >  Comment utiliser le réseau virtuel Docker

Comment utiliser le réseau virtuel Docker

PHPz
PHPzoriginal
2023-04-19 09:15:54792parcourir

Docker est actuellement l'une des plates-formes de conteneurisation les plus populaires, ce qui peut grandement simplifier le déploiement et la gestion des applications. L'une des fonctionnalités les plus importantes est le réseau virtuel Docker, qui aide les utilisateurs à créer plusieurs conteneurs sur une machine physique distincte et à travailler en collaboration tout en offrant une bonne isolation et sécurité du réseau.

Dans cet article, nous présenterons comment utiliser le réseau virtuel Docker pour établir la communication et l'interopérabilité réseau entre les conteneurs, et présenterons également l'importance de l'isolation et de la sécurité du réseau.

  1. Créer et gérer un réseau virtuel Docker

Tout d'abord, nous devons créer un réseau virtuel Docker. Vous pouvez utiliser la commande suivante pour créer un réseau virtuel nommé « mon-réseau » :

docker network create my-network

Après avoir créé le réseau, vous pouvez utiliser la commande suivante pour lister le réseau virtuel docker actuel :

docker network ls

Les résultats sont les suivants :

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

Maintenant, nous avons créé Créez un réseau virtuel appelé "mon-réseau" qui peut être utilisé pour créer des conteneurs et communiquer.

  1. Connecter les conteneurs au réseau virtuel Docker

Ensuite, nous allons créer deux conteneurs et les connecter au réseau virtuel "mon-réseau" que nous venons de créer. Nous utilisons le paramètre --network pour connecter le conteneur au réseau virtuel. --network参数将容器连接到虚拟网络。

使用以下命令启动一个名为"webserver"的容器,并将其连接到虚拟网络:

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

在上面的命令中,我们使用了"nginx"镜像来创建我们的容器。-p

Démarrez un conteneur nommé "webserver" et connectez-le au réseau virtuel à l'aide de la commande suivante :

docker run --name database --network my-network -e MYSQL_ROOT_PASSWORD=password -d mysql
Dans la commande ci-dessus, nous avons utilisé l'image "nginx" pour créer notre conteneur. Le paramètre -p mappe le port « 80 » du conteneur Docker au port « 8080 » de la machine physique.

Nous pouvons également créer un deuxième conteneur et le connecter au réseau virtuel en utilisant une méthode similaire :

docker exec -it webserver apt-get update
docker exec -it webserver apt-get install nano
Dans la commande ci-dessus, nous utilisons l'image "mysql" pour créer notre conteneur et configurer un mot de passe root MySQL.
  1. Maintenant, nous avons créé deux conteneurs et les avons connectés au réseau virtuel que nous avons créé.

Tester la communication entre les conteneurs

Pour tester que nos conteneurs communiquent avec succès, nous pouvons utiliser une simple page HTML dans le "serveur web".

Tout d'abord, on va dans le conteneur "webserver" et on installe l'éditeur de texte nano en utilisant la commande suivante :

docker exec -it webserver nano /usr/share/nginx/html/index.html
Ensuite, on crée une simple page index.html en utilisant l'éditeur de texte nano :

<!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>
Dans la page, on ajoutez le contenu suivant :

http://127.0.0.1:8080
Dans le code ci-dessus, nous ajoutons un message texte à la page, et un script PHP pour se connecter à la base de données MySQL dans le conteneur "database".

Maintenant, nous pouvons simplement ouvrir la page en utilisant l'URL suivante sur le navigateur Web de la machine physique :

...
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
La page affichera "Bonjour du serveur Web !" et un message de connexion réussie.

Pendant ce temps, si nous exécutons la commande "docker logs database" sur le conteneur "database", nous verrons le résultat suivant :
    rrreee
  1. Cela indique que la communication entre les deux conteneurs est normale et que notre page de test peut réussir. Connectez-vous à la base de données MySQL sur le conteneur "database".

Isolation et sécurité du réseau

Un autre rôle important du réseau virtuel Docker est de fournir l'isolation et la sécurité du réseau entre les différents conteneurs. Par exemple, si nous exécutons un code malveillant dans le conteneur « serveur Web », il ne pourra pas accéder aux autres conteneurs et les affecter.
  1. De plus, nous pouvons également utiliser le réseau virtuel Docker pour restreindre l'accès des conteneurs aux réseaux externes. Par exemple, nous pouvons augmenter la sécurité de notre application en créant un réseau virtuel et en garantissant que les conteneurs ne peuvent communiquer qu'avec d'autres conteneurs de ce réseau et ne peuvent pas accéder à d'autres conteneurs sur Internet.

Résumé

Dans cet article, nous avons présenté comment utiliser le réseau virtuel Docker pour connecter différents conteneurs et permettre la communication entre les conteneurs. Nous avons également appris comment les réseaux virtuels Docker assurent l'isolation et la sécurité du réseau. 🎜🎜Le réseau virtuel est une fonctionnalité très importante de Docker, qui peut être utilisée pour créer de puissantes applications conteneurisées et assurer une bonne sécurité. Si vous créez une application à l'aide de Docker, pensez à utiliser des réseaux virtuels pour améliorer la sécurité et l'efficacité de votre application. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn