Terrain de jeu pour le réseau Docker

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Le réseau Docker est un aspect fondamental de l'orchestration de conteneurs, permettant aux conteneurs de communiquer entre eux et avec les réseaux externes. Ce défi vous guidera à travers les concepts essentiels du réseau Docker, depuis la création et la gestion des réseaux jusqu'à la connexion et la déconnexion des conteneurs.

En complétant ce défi, vous aurez une expérience pratique des commandes réseau Docker et comprendrez comment configurer la communication entre les conteneurs. Ces compétences sont cruciales pour le développement et le déploiement d'applications multi-conteneurs dans des environnements Docker.

Plongeons dans le monde du réseau Docker!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/run -.-> lab-389054{{"Terrain de jeu pour le réseau Docker"}} docker/exec -.-> lab-389054{{"Terrain de jeu pour le réseau Docker"}} docker/inspect -.-> lab-389054{{"Terrain de jeu pour le réseau Docker"}} docker/network -.-> lab-389054{{"Terrain de jeu pour le réseau Docker"}} end

Créer un réseau

Dans cette étape, vous allez créer votre premier réseau Docker. C'est la base pour connecter les conteneurs et permettre la communication entre eux.

Tâches

  1. Créez un nouveau réseau bridge nommé my-network en utilisant la commande docker network create.
  2. Vérifiez que le réseau a été créé en listant tous les réseaux Docker.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez le pilote bridge par défaut lors de la création du réseau.

Exemple

Après avoir terminé cette étape, vous devriez voir my-network dans la liste lorsque vous exécutez docker network ls :

NETWORK ID     NAME         DRIVER    SCOPE
abcdef123456   my-network   bridge    local
✨ Vérifier la solution et pratiquer

Lancer des conteneurs dans le réseau

Maintenant que nous avons un réseau, lançons quelques conteneurs et connectons-les à celui-ci. Cette étape montrera comment démarrer des conteneurs au sein d'un réseau spécifique, un concept clé dans le réseau Docker.

Tâches

  1. Démarrez un conteneur nommé container1 en utilisant l'image nginx et connectez-le à my-network.
  2. Démarrez un autre conteneur nommé container2 en utilisant l'image httpd et connectez-le à my-network.
  3. Vérifiez que les deux conteneurs sont en cours d'exécution et connectés à my-network.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez le flag --network lors du démarrage des conteneurs pour les connecter à my-network.
  • Exécutez les deux conteneurs en mode détaché.

Exemple

Après avoir terminé cette étape, vous devriez voir les deux conteneurs en cours d'exécution lorsque vous utilisez docker ps :

CONTAINER ID   IMAGE   COMMAND   CREATED         STATUS         PORTS     NAMES
abcdef123456   nginx   "..."     2 minutes ago   Up 2 minutes   80/tcp    container1
fedcba654321   httpd   "..."     2 minutes ago   Up 2 minutes   80/tcp    container2
✨ Vérifier la solution et pratiquer

Tester la connectivité

Dans cette étape, vous allez vérifier que les conteneurs peuvent communiquer entre eux sur le réseau que vous avez créé. C'est un test crucial pour vous assurer que votre configuration réseau fonctionne comme prévu.

Tâches

  1. Utilisez la commande docker exec pour exécuter un shell dans container1.
  2. À l'intérieur de container1, utilisez la commande curl pour accéder à container2 par son nom de conteneur.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez container2 comme nom d'hôte dans votre commande curl.
  • La commande curl devrait accéder au port HTTP par défaut (80) sur container2.

Exemple

Après avoir exécuté la commande curl depuis container1, vous devriez voir le contenu de la page par défaut du serveur HTTP Apache :

<!DOCTYPE html>
<html><body><h1>It works!</h1></body></html>
✨ Vérifier la solution et pratiquer

Connecter un conteneur à plusieurs réseaux

Dans cette étape, vous allez apprendre à connecter un seul conteneur à plusieurs réseaux. C'est un concept plus avancé qui est utile pour créer des topologies réseau complexes ou pour migrer progressivement des services entre les réseaux.

Tâches

  1. Créez un nouveau réseau bridge nommé my-network2.
  2. Connectez container2 à my-network2 tout en conservant sa connexion à my-network.
  3. Vérifiez que container2 est maintenant connecté aux deux réseaux.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez la commande docker network connect pour ajouter container2 à my-network2.
  • Utilisez la commande docker inspect pour vérifier les connexions réseau.

Exemple

Après avoir connecté container2 à my-network2, vous devriez voir les deux réseaux listés lorsque vous inspectez le conteneur :

"Networks": {
    "my-network": {
       ...
    },
    "my-network2": {
       ...
    }
}
✨ Vérifier la solution et pratiquer

Déconnecter un conteneur d'un réseau

Dans cette étape, vous allez apprendre à supprimer un conteneur d'un réseau sans arrêter le conteneur. Cela est utile lorsque vous avez besoin d'isoler un conteneur ou lorsque vous réorganisez votre architecture réseau.

Tâches

  1. Déconnectez container2 de my-network en utilisant la commande docker network disconnect.
  2. Vérifiez que container2 n'est plus connecté à my-network.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Utilisez la commande docker network disconnect pour supprimer container2 de my-network.
  • Utilisez la commande docker network inspect pour vérifier la déconnexion.

Exemple

Après avoir déconnecté container2 de my-network, vous ne devriez pas voir container2 dans la liste lorsque vous inspectez my-network :

$ docker network inspect my-network
[
    {
        "Name": "my-network",
       ...
        "Containers": {
            "container1": {
               ...
            }
        },
       ...
    }
]
✨ Vérifier la solution et pratiquer

Supprimer un réseau

Dans cette étape finale, vous allez apprendre à supprimer un réseau Docker lorsqu'il n'est plus nécessaire. Le nettoyage approprié des ressources inutilisées est une partie importante de la gestion efficace des environnements Docker.

Tâches

  1. Déconnectez container2 de my-network2 s'il est toujours connecté.
  2. Supprimez le réseau my-network2 en utilisant la commande docker network rm.
  3. Vérifiez que my-network2 a été supprimé.

Exigences

  • Effectuez toutes les opérations dans le répertoire /home/labex/project.
  • Assurez-vous qu'aucun conteneur n'est connecté à my-network2 avant de le supprimer.
  • Utilisez la commande docker network ls pour vérifier la suppression du réseau.

Exemple

Après avoir supprimé my-network2, vous ne devriez pas le voir dans la liste lorsque vous exécutez docker network ls :

NETWORK ID     NAME         DRIVER    SCOPE
abcdef123456   my-network   bridge    local
ghijkl789012   bridge       bridge    local
mnopqr345678   host         host      local
stuvwx901234   none         null      local
✨ Vérifier la solution et pratiquer

Résumé

Félicitations pour avoir terminé le défi sur les bases du réseau Docker! Vous avez réussi à parcourir les concepts essentiels du réseau Docker, notamment :

  1. La création de réseaux Docker personnalisés
  2. Le lancement de conteneurs dans des réseaux spécifiques
  3. Le test de la connectivité entre les conteneurs
  4. La connexion de conteneurs à plusieurs réseaux
  5. La déconnexion de conteneurs des réseaux
  6. La suppression de réseaux Docker

Ces compétences constituent la base d'une gestion efficace des réseaux Docker et seront inestimables lorsque vous travaillerez avec des applications conteneurisées plus complexes. N'oubliez pas qu'une configuration réseau appropriée est cruciale pour l'isolement des conteneurs, la sécurité et la communication efficace entre les services.

Au cours de ce défi, vous avez appris à créer des environnements isolés pour vos conteneurs, à permettre la communication entre eux et à gérer dynamiquement les connexions réseau. Ces capacités vous permettent de concevoir des architectures réseau sophistiquées qui peuvent s'adapter aux exigences changeantes.

Alors que vous poursuivez votre parcours avec Docker, envisagez d'explorer des sujets de réseau plus avancés, tels que les réseaux overlay (réseaux superposés) pour les configurations multi-hôtes, les plugins réseau et la manière dont le réseau Docker s'intègre aux plateformes d'orchestration de conteneurs comme Kubernetes. Vous pourriez également souhaiter approfondir les concepts de sécurité réseau, par exemple, comment utiliser des politiques réseau pour contrôler le flux de trafic entre les conteneurs.

Continuez à pratiquer ces compétences, et vous serez bien préparé pour concevoir et gérer des architectures réseau de conteneurs sophistiquées dans vos futurs projets. N'oubliez pas que le réseau efficace est la clé pour construire des applications conteneurisées évolutives, sécurisées et efficaces.