Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Technologie Docker

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 73

TECHNOLOGIE

DOCKER
M Malick GAYE
TABLE OF CONTENTS

01 02 03
Docker et Decouverte et
iNTRODUCTION
virtualisation installation
Differences virtialisation et C’est quoi un coneteneur;
Introduction du cours
conteneurisation comment l’installer?

04 05 06
Images Conteneurs Reseau
Fonctionnement manipulation des Fonctionnement manipulation des Fonctionnement manipulation
images docker conteneurs reseau docker
INTRODUCTION
q Histoire
q Prérequis

O1
INTRODUCTION

q Docker est un outil ultra léger de virtualisation à base de conteneurs.


q On peut aisément le différencier des machines virtuelles notamment par le fait
que le système d'exploitation est mutualisé pour les conteneurs.
q Docker est un outil de conteneurisation parmi d'autres comme crio, rkt, lxd...
q Sa ligne de commande simple a permis la percée dans l'utilisation et l'émergence
des conteneurs.
q En outre, docker est souvent couplé à la philosophie devops.
q A l'heure actuelle, un ingénieur souhaitant devenir devops intégrera une
formation docker dans son cursus.
INTRODUCTION
Histoire
1. Docker est une plateforme lancé en mars 2013 permettant aux développeurs et
aux administrateurs système de :
§ développer,
§ déployer et
§ exécuter des applications avec des conteneurs, plus précisément la plateforme permet
d'embarquer une application avec toutes ses dépendances dans un process
isolé (nommé conteneur) qui peut être ensuite exécutée sur n'importe quelle machine
avec n'importe quel système d'exploitation compatible avec le moteur Docker.
2. il faut savoir que le terme Docker signifie à la fois une technologie et à la fois une entreprise, ce qui pourrait
parfois porter à confusion.
3. Docker a été fondée en France par un diplômé de l'école d'Epitech nommé Solomon Hykes. Par
manque d'investissement en France, l'entreprise a souhaité évoluer dans la Silicon Valley, où elle a pu
enchaîner des levées de fonds spectaculaires, illustrant ainsi le potentiel attendu de cette
technologie.
INTRODUCTION
Prérequis

q Avoir une compréhension de base sur les


commandes Linux.
q Si vous maîtrisez Linux et la virtualisation, il vous
sera très facile de comprendre les concepts de
Docker
DOCKER ET VIRTUALISATIN

q Fonctionnement de la virtualisation
q Les avantages de la virtualisation
q Les inconvénients de la virtualisation
q L’isolation
q Avantages de conteneurisation

O2
Docker et virtualisation
Fonctionnement de la

virtualisation Au lieu d’avoir un serveur avec un système d’exploitation faisant


tourner une ou plusieurs application(s), on préfére mutualiser
plusieurs serveurs virtuels depuis un serveur physique grâce à un
logiciel nommé l’hyperviseur.
L’hyperviseur permet d’émuler intégralement les
différentes ressources matérielles d'un serveur physique (l'unité
centrale, le CPU, la RAM, le disque dur, carte réseau etc ...), et
permet à des machines virtuelles de les partager.

Les machines virtuelles bénéficient de ressources matérielles


selon leurs. besoins L'avantage c'est qu'il est possible de modifier
les ressources de ces VMs en quelques clics. De plus
elles possèdent leur propre système d’exploitation ainsi que
leurs propres applications.
Docker et virtualisation
les avantages de la

virtualisation
q Consacrer les ressources adaptées selon les applications qu'on souhaite mettre en place.
q Les machines virtuelles restent simples à manier. Il est possible par exemple de basculer une VM
d'un lieu à l'autre voir même de sauvegarder et de dupliquer une VM à volonté sans aucun impact
visible pour les utilisateurs.
q La virtualisation réduit les dépenses en abaissant le besoin de systèmes matériels physiques. Elle
permet ainsi de réduire la quantité d'équipement nécessaire et les coûts de maintenance
d'alimentation et de refroidissement des composants.
q Les machines virtuelles apportent également une aisance à l'administration car un matériel virtuel
n'est pas sujet aux défaillances. Les administrateurs profitent des environnements virtuels pour
faciliter les sauvegardes, la reprise après catastrophe.
Docker et virtualisation
les inconvénients de la

virtualisation
q Le fait d’accéder aux ressources de façon virtuelle affaiblie les performances, cela est
dû au fait qu’on passe par une couche d’abstraction matérielle qui doit faire des
interprétations entre le matériel en place et celui simulé dans la machine virtuelle.
q La virtualisation consiste à faire fonctionner sur un seul ordinateur physique plusieurs
VMs avec différents systèmes d'exploitation, comme s'ils fonctionnaient sur des
ordinateurs distincts. Mais malheureusement cette couche d'OS consomme à lui tout
seul des ressources alors qu’au final, ce qui nous intéresse c’est la ou les applications
vont tourner.
Docker et virtualisation
l’isolation

q Dans le cas de la virtualisation l’isolation des VMs se fait au niveau matérielles (CPU/RAM/Disque) avec un accès
virtuel aux ressources de l'hôte via un hyperviseur. De plus, généralement les ordinateurs virtuels fournissent un
environnement avec plus de ressources que la plupart des applications n'en ont besoin.
q Par contre dans le cas de la conteneurisation, l’isolation se fait au niveau du système d’exploitation. Un conteneur va
s'exécuter sous Linux de manière native et va partager le noyau de la machine hôte avec d'autres conteneurs. ne
prenant pas plus de mémoire que tout autre exécutable, ce qui le rend léger.
Docker et virtualisation
les avantage de conteneurisation

La conteneurisation est de plus en plus populaire car les conteneurs sont :


q Flexible: même les applications les plus complexes peuvent être conteneurisées.
q Léger: les conteneurs exploitent et partagent le noyau hôte.
q Interchangeable: vous pouvez déployer des mises à jour à la volée
q Portable: vous pouvez créer localement, déployer sur le cloud et exécuter n'importe
où votre application.
q Évolutif: vous pouvez augmenter et distribuer automatiquement les réplicas (les
clones) de conteneur.
q Empilable: Vous pouvez empiler des services verticalement et à la volée.
Découverte et installation

q C’est quoi un conteneur


q Vue d’ensemble éditions et versions
q Installation sous Linux
q Installation sous Windows

O3
C’est quoi un conteneur

q Le noyau Linux offre quelques fonctionnalités comme les namespaces (ce


qu'un processus peut voir) et les cgroups (ce qu'un processus peut utiliser en
terme de ressources), qui permettent d’isoler les processus les uns des autres.
q Lorsque vous utilisez ces fonctionnalités, on appelle cela des conteneurs.
q Prenons un exemple simple, si jamais on souhaite créer un conteneur
contenant la distribution Ubuntu. Fondamentalement, ces fonctionnalités
d'isolation proposées par le noyau Linux, vont vous permettent de prétendre
d'avoir quelque chose qui ressemble à une machine virtuelle avec l'OS Ubuntu,
sauf qu'en réalité ce n'est pas du tout une machine virtuelle mais un processus
isolé s'exécutant dans le même noyau Linux .
C’est quoi un conteneur

q Les namespaces (ou "espaces de noms" en français) isolent les ressources partagées. Ils
donnent à chaque processus sa propre vue unique du système, limitant ainsi leur accès aux
ressources système sans que le processus en cours ne soit au courant des limitations.
q Il existe différents types de namespaces
a. Le namespace PID : fournit un ensemble indépendant d'identifiants de
processus (PID).
b. Le namespace IPC : empêche la communication avec les autres processus,
plus simplement il interdit l'échange d'informations avec les autres processus.
c. Le namespace USER : fournit à la fois l'isolation des privilèges et la séparation
des identifications d'utilisateurs entre plusieurs ensembles.
C’est quoi un conteneur

q Les Cgroups : limiter les ressources


limiter la quantité de mémoire ou de processeur utilisée par un ds processus
a. cgroup cpu : planifie un accès aux ressources du processeur
b. cgroup cpuacct : génère des rapports sur les ressources du processeur utilisées
c. cgroup devices : autorise ou refuse l'accès aux périphériques
d. cgroup net_prio : permet de définir la priorité du trafic réseau
e. cgroup memory : définit la limite d'utilisation de la mémoire
q les conteneurs contiennent généralement un ou plusieurs programme(s) de manière à les maintenir
isolées du système hôte sur lequel elles s'exécutent.
q Ils permettent à un développeur de conditionner une application avec toutes ses dépendances, et
de l'expédier dans un package unique.
q En outre, ils sont conçus pour faciliter la mise en place d’une expérience cohérente lorsque les
développeurs et les administrateurs système déplacent le code des environnements de
développement vers la production de manière rapide et reproductible.
Vue d’ensemble éditions et versions

q Docker est disponible en deux éditions:


§ Docker Community Edition (CE)
§ docker Enterprise Edition (EE)
q Docker Community Edition (CE) est idéale pour les développeurs individuels et les petites
équipes cherchant à se familiariser avec Docker et à expérimenter des applications
basées sur des conteneurs. De plus cette version est gratuite. Ça sera la version que
nous utiliserons.
q Docker Enterprise Edition (EE) est conçue pour les équipes de développement
d’entreprise et les équipes système qui créent, expédient et exécutent des applications
critiques pour la production à grande échelle (Elle n'est pas gratuite).
Installation sous linux
exemple ubuntu

q sudo apt update


q sudo apt install apt-transport-https ca-certificates curl software-properties-common
q curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
q sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic
stable“
q sudo apt update
q sudo apt install docker-ce
Installation sous Windows

q Download and install docker


https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe

1. Windows 11 64-bit: Home or Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
2. Windows 10 64-bit: Home or Pro 21H1 (build 19043) or higher, or Enterprise or Education 20H2 (build 19042) or
higher.
3. Enable the WSL 2 feature on Windows. For detailed instructions, refer to the Microsoft documentation.
4. The following hardware prerequisites are required to successfully run WSL 2 on Windows 10 or Windows 11:
a. 64-bit processor with Second Level Address Translation (SLAT)
b. 4GB system RAM
c. BIOS-level hardware virtualization support must be enabled in the BIOS settings. For more
information, see Virtualization.
5. Download and install the Linux kernel update package.
Images docker

q Qu’est-ce qu’une image docker


q Quelques commandes

O4
Qu’est-ce qu’une image Docker

q un conteneur est lancé en exécutant une image.


q Une image est un package qui inclut tout ce qui est nécessaire à l'exécution d'une application, à
savoir :
o Le code
o L'exécution
o Les variables d'environnement
o Les bibliothèques
o Les fichiers de configuration
q Une image docker est créée à partir d'un fichier nommé le Dockerfile. Une image est un modèle
composé de plusieurs couches, ces couches contiennent notre application ainsi que les fichiers
binaires et les bibliothèques requises. Lorsqu'une image est instanciée, son nom est un conteneur,
un conteneur est donc une image en cours d'exécution.
Qu’est-ce qu’une image Docker

q Pour mieux comprendre le système de couche, imaginons par exemple


qu'on souhaite déployer notre application web dans un serveur LAMP
(Linux Apache MySQL PHP) au moyen de Docker. Pour créer notre
stack (pile en français), nous aurons besoin de :
o Une couche OS pour exécuter notre Apache, MySQL et Php
o Une couche Apache pour démarrer notre serveur web et pourquoi pas la
config qui va avec (.htaccess, apache2.conf, site-available/, etc ... )
o Une couche php qui contiendra un interpréteur Php mais aussi les
bibliothèques qui vont avec (exemple : php-curl)
o Une couche Mysql qui contiendra notre système de gestion de bases de
données Mysql
q Au total, notre image docker sera composée de quatre couches, en
schéma ceci nous donnerai :

Il est important de bien différencier une image Docker d'un conteneur Docker car ce sont deux
choses distinctes,
Quelques commandes

1. Docker help
Quelques commandes

1. Docker help
2. Docker volume
Quelques commandes
1. Docker help
2. Docker volume
3. Docker –-version
4. Docker version (plus d’infos)
Quelques commandes
1. Docker help
2. Docker volume
3. Docker –-version
4. Docker info
Quelques commandes
1. Docker help
2. Docker volume
3. Docker –-version
4. Docker info
5. Docker image ls
6. Docker images
Quelques commandes
1. Docker help
2. Docker volume
3. Docker –-version
4. Docker info
5. Docker image ls
6. Docker images
7. Docker rmi

q Ce message d'erreur nous explique, qu'on ne peut pas supprimer notre


image Docker car des conteneurs ont été instanciés depuis notre
image "hello-world". En gros si on jamais on supprime notre image
"hello-world", ça va aussi supprimer nos conteneurs car ils se basent
sur cette image.
q Pour forcer la suppression on utiliser l'option --force ou -f
Quelques commandes
5. Docker image ls
1. Docker help 6. Docker images
2. Docker volume 7. Docker rmi
3. Docker –-version 8. docker rmi -f $(docker
4. Docker info images -q)

q Voici une commande qui permet de supprimer toutes les images


disponibles sur notre machine :
Docker rmi -f $(docker images -q)
q Plusieurs images avec le même nom mais avec des tags différents alors
vous devez préciser le tag dans votre commande rmi , pour ainsi être
sûr de supprimer la bonne image.
Telecharger une image Docker
Sur hub.docker.com
1. Lister les images disponibles sur le Docker Hub Registry
Telecharger une image Docker
Sur hub.docker.com
2. Télécharger des images disponibles sur le Docker Hub Registry
Telecharger une image Docker
via la ligne de commande
3. Lister les images avec « docker search »
Telecharger une image Docker
via la ligne de commande
3. Lister les images avec « docker search »
Telecharger une image Docker
via la ligne de commande
4. Télécharger une image « docker pull »
Conteneurs docker

q Différence entre image et conteneur


q Quelques commandes
q Création de notre image
q Les volumes

O5
Difference entre image et conteneur

q Lorsque vous utilisez des fonctionnalités permettant une isolation du


processus (comme les namespaces et les cgroups), on appelle cela des
conteneurs. Dans ces conteneurs on peut retrouver généralement un ou
plusieurs programme(s) avec toute leurs dépendances de manière à les
maintenir isolées du système hôte sur lequel elles s'exécutent.
q Un conteneur est une instance d'exécution d'une image plus précisément
un conteneur est ce que l'image devient en mémoire lorsqu'elle est exécutée
(c'est-à-dire une image avec un état ou un processus utilisateur).
Quelques commandes
Céer un conteneur

q Pour créer une instance de notre image, ou autrement dit créer un conteneur, alors
nous utiliserons une commande run
a. docker run [OPTIONS] <IMAGE_NAME ou ID>

o Étape 1 : Téléchargement de l'image hello-world :

o Étape 2 : Instanciation de l'image hello-world :


Quelques commandes
Céer un conteneur
o Étape 1 : Téléchargement de l'image hello-world :

o Étape 2 : Instanciation de l'image hello-world :

q Le conteneur s’arrête directement après la commande parce que la commande est


lancée sans option(s)
q il existe plusieurs options voici les options qui nous intéressent
o -t : Allouer un pseudo TTY (terminal virtuel)
o -i : Garder un STDIN ouvert (l'entrée standard plus précisément l'entrée clavier)
o -d : Exécuter le conteneur en arrière-plan et afficher l'ID du conteneur
Quelques commandes
Céer un conteneur

q Profitons-en pour télécharger l'outil git, mais juste avant n'oubliez pas de récupérer
les listes de paquets depuis les sources afin que votre conteneur sache quels sont
les paquets disponibles en utilisant la commande apt-get update
Quelques commandes
Céer un conteneur

q Mon conteneur Ubuntu 16.04 est bien démarré


q Par contre si je lance la commande git --version, alors je vais obtenir une erreur m'indiquant que git est
inexistant..
q Il existe deux façons pour stocker les données d'un conteneur,
q soit on transforme notre conteneur en image
q soit on utilise le système de volume
Quelques commandes
Céer un conteneur
q Autres options utiles de la commande docker run :
o --name : Attribuer un nom au conteneur
o --expose: Exposer un port ou une plage de ports (on demande au firewall du conteneur de nous ouvrir
un port ou une plage de port)
o -p ou --publish: Mapper un port déjà exposé, plus simplement ça permet de faire une redirection de port
q Par défaut l'image apache expose déjà le port 80 donc pas besoin de lancer l'option --expose, pour notre
exemple nous allons mapper le port 80 vers le 8080 et nommer notre conteneur en "monServeurWeb", ce
qui nous donnera comme commande :
Quelques commandes
Céer un conteneur

q Une fois votre image exécutée, visitez http://localhost:8080


q Seulement le seul souci, c'est que sur notre terminal, on aperçoit les logs d'Apache qui tournent en
boucle
q Ce qui serait intéressant c'est de laisser notre conteneur tourner en arrière-plan avec l'option -d
o docker run --name monServeurWeb -d -p 8080:80 httpd:latest
Quelques commandes
Afficher la liste des conteneurs
1. Pour supprimer notre conteneur, il faut d'abord l'identifier et par la suite récolter soit son id, soit
son nom avec:
q docker container ls
ou
q Docker ps

Maintenant que nous avons pu récupérer l'id ou le nom du conteneur


q docker rm <CONTAINER NAME ou ID>
q docker rm monServeurWeb
Une fois le conteneur supprimé, on peut créer un conteneur Apache avec l'option -d
q docker run --name monServeurWeb -d -p 8080:80 httpd:latest
Quelques commandes
Supprimer un conteneur
1. Pour supprimer notre conteneur, il faut d'abord l'identifier et par la suite récolter soit son id, soit
son nom.

2. Maintenant que nous avons pu récupérer l'id ou le nom du conteneur, on est capable de
supprimer notre conteneur avec la commande suivante :
Quelques commandes
executer une cmd dans un conteneur
1. Il existe une commande docker exec qui permet de lancer n'importe quelle commande dans un
conteneur déjà en cours d'exécution. Nous allons l'utilisée pour récupérer notre interpréteur de
commande /bin/bash , ce qui aura pour but de se connecter directement à notre conteneur Apache.

2 Vous êtes maintenant dans votre conteneur. Pour s'amuser un peu, on va changer le message de
la page d'accueil :

Information
Pour quitter votre conteneur sans le détruire,
utilisez le raccourcis suivant :
Ctrl + P + Q
Quelques commandes
Afficher les logs d’un conteneur
1. Dès fois, vous aurez besoin de déboguer votre conteneur en regardant les sorties/erreurs d'un
conteneur.
2. Il existe pour cela la commande docker logs qui vient avec deux options très utiles :
a. -f : suivre en permanence les logs du conteneur (correspond à tail -f)
b. -t : afficher la date et l'heure de réception des logs d'un conteneur docker logs
Création de notre image
Transformer votre conteneur en image
les étapes
1. Exécuter notre conteneur basé sur l'image officielle Ubuntu
2. Installer l'outil git
3. Mettre du texte dans un nouveau fichier
4. Transformer notre conteneur en image
5. Relancer notre un nouveau conteneur basé sur cette nouvelle image

Ctrl + P + Q pour quitter sans détruire le contenaire


Création de notre image
Transformer votre conteneur en image
les étapes
Maintenant, c'est l'étape de créer mon image depuis mon nouveau conteneur.
docker commit <CONTAINER NAME or ID> <NEW IMAGENAME>

Voilà, maintenant, on va lancer notre conteneur basé sur cette nouvelle image :
Création de notre image

les étapes
Maintenant, c'est l'étape de créer mon image depuis mon nouveau conteneur.
docker commit <CONTAINER NAME or ID> <NEW IMAGENAME>

Voilà, maintenant, on va lancer notre conteneur basé sur cette nouvelle image :
Création de notre image
via dockerfile
Les instructions du fichier Dockerfile les plus utilisées.
1. FROM : Définit l'image de base qui sera utilisée par les instructions suivantes.
2. LABEL : Ajoute des métadonnées à l'image avec un système de clés-valeurs, permet par exemple
d'indiquer à l'utilisateur l'auteur du Dockerfile.
3. ARG : Variables temporaires qu'on peut utiliser dans un Dockerfile.
4. ENV : Variables d'environnements utilisables dans votre Dockerfile et conteneur.
5. RUN : Exécute des commandes Linux ou Windows lors de la création de l'image. Chaque
instruction RUN va créer une couche en cache qui sera réutilisée dans le cas de modification
ultérieure du Dockerfile.
6. COPY : Permet de copier des fichiers depuis notre machine locale vers le conteneur Docker.
7. ADD : Même chose que COPY mais prend en charge des liens ou des archives
8. ENTRYPOINT : comme son nom l'indique, c'est le point d'entrée de votre conteneur, en d'autres
termes, c'est la commande qui sera toujours exécutée au démarrage du conteneur.
9. CMD : Spécifie les arguments qui seront envoyés au ENTRYPOINT
Création de notre image
via dockerfile

Les instructions du fichier Dockerfile les plus utilisées.


1. WORKDIR : Définit le répertoire de travail qui sera utilisé pour le lancement des commandes
CMD et/ou ENTRYPOINT et ça sera aussi le dossier courant lors du démarrage du conteneur.
2. EXPOSE : Expose un port.
3. VOLUMES : Crée un point de montage qui permettra de persister les données.
4. USER : Désigne quel est l'utilisateur qui lancera les prochaines instructions
RUN ,CMD : Spécifie les arguments qui seront envoyés au ENTRYPOINT
Création de notre image
via dockerfile

FROM ubuntu:latest
MAINTAINER Malick
RUN apt-get update \
&& apt-get install -y vim git \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
Création de notre image
Création de notre image
Les volumes

1. Afin de pouvoir sauvegarder (persister) les données et également partager des


données entre conteneurs, Docker a développé le concept de volumes. Les volumes
sont des répertoires (ou des fichiers) qui ne font pas partie du système de fichiers
Union mais qui existent sur le système de fichiers hôte.
2. En outre, les volumes constituent souvent le meilleur choix pour persistance des
données, car un volume n'augmente pas la taille des conteneurs qui l'utilisent et son
contenu existe en dehors du cycle de vie d’un conteneur donné.
Les volumes
Créer et gérer des volumes
Les volumes
Créer et gérer des volumes
Les volumes
Créer et gérer des volumes

Création d’une petite image pour tester cette option, commencez d'abord par créer
un Dockerfile avec le contenu suivant :
FROM alpine:latest
RUN mkdir /data
WORKDIR /data
Ensuite buildez notre image
docker build -t vtest .
la commande suivante va créer et monter le volume data-test dans le dossier /data
du conteneur.
docker run -ti --name vtest_c -v data-test:/data vtest
Ouvrez un autre terminal et dans celui-ci inspectez le nouveau volume :
docker volume inspect data-test
Les volumes
Créer et gérer des volumes

Pour le moment le dossier est vide, maintenant retournez vers le terminal avec le shell du
conteneur et créez dans le dossier /data un fichier avec le texte suivant :
echo "ceci est un test" > test.txt

Maintenant quitter le conteneur avec la commande exit et le supprimer :


docker rm -f vtest_c
Je vais recréer un nouveau conteneur, pour vérifier que les données ont bien été sauvegardées :
docker run -ti --name vtest_c -v data-test:/data vtest
Dans ce même nouveau conteneur, vérifie je le contenu du fichierprécédemment :
cat test.txt
Résultat :
ceci est un test
Les données sont maintenant bien sauvegardées.
Les volumes
Créer et gérer des volumes
Le Réseau
q Presentation
q Manipulation

O6
Présentation des différents types de réseau

Le système réseau de Docker utilise des drivers (pilotes). Plusieurs drivers existent et
fournissent des fonctionnalités différentes.

q Le driver Bridge
Tout d'abord, lorsque vous installez Docker pour la première fois, il automatiquement un réseau bridge
nommé bridge connecté à l'interface réseau docker0 ( consultable avec la commande ip addr
show docker0 ). Chaque nouveau conteneur Docker est automatiquement connecté à ce
réseau, sauf si un réseau personnalisé est spécifié.
Par ailleurs, le réseau bridge est le type de réseau le plus couramment utilisé. Il est limité aux
conteneurs d'un hôte unique exécutant le moteur Docker. Les conteneurs qui utilisent ce driver, ne
peuvent communiquer qu'entre eu cependant ils ne sont pas accessibles depuis l'extérieur.
Présentation des différents types de réseau

Le driver Bridge

Pour que les conteneurs sur le réseau bridge


puissent communiquer ou être accessibles du
monde extérieur, vous devez configurer le
mappage de port.
Présentation des différents types de réseau

q Le driver none
C'est le type de réseau idéal, si vous souhaitez interdire toute communication
interne et externe avec votre conteneur, car votre conteneur sera dépourvu de
toute interface réseau (sauf l'interface loopback).

q Le driver host
Ce type de réseau permet aux conteneurs d'utiliser la même interface que l'hôte.
Il supprime donc l'isolation réseau entre les conteneurs et seront par défaut
accessibles de l'extérieur. De ce fait, il prendra la même IP que votre machine
hôte.
Présentation des différents types de réseau

q Le driver host
Ce type de réseau permet aux
conteneurs d'utiliser la même
interface que l'hôte. Il supprime donc
l'isolation réseau entre les conteneurs
et seront par défaut accessibles de
l'extérieur. De ce fait, il prendra la
même IP que votre machine hôte.
Présentation des différents types de réseau

q Le driver overlay
Si vous souhaitez une mise en réseau multi-
hôte native, vous devez utiliser un
driver overlay. Il crée un réseau distribué
entre plusieurs hôtes possédant le moteur
Docker. Docker gère de manière transparente
le routage de chaque paquet vers et
depuis le bon hôte et le bon conteneur.
Présentation des différents types de réseau

q Le driver macvlan
L'utilisation du driver macvlan est parfois le meilleur
choix lorsque vous utilisez des applications qui
s'attendent à être directement connectées au
réseau physique, car le driver Macvlan vous permet
d'attribuer une adresse MAC à un conteneur, le
faisant apparaître comme un périphérique physique
sur votre réseau. Le moteur Docker route le trafic
vers les conteneurs en fonction de leurs adresses
MAC.
Manipulation du réseau dans Docker
Manipulation du réseau dans Docker

Vous pouvez surcharger la valeur du Subnet et de la Gateway en utilisant les


options --subnet et --gateway de la commande docker network create,
comme suit :
docker network create bridge --subnet=172.16.86.0/24 --
gateway=172.16.86.1 mon-bridge
Manipulation du réseau dans Docker

Pour cet exemple, nous allons connecter deux conteneurs à notre réseau bridge
Manipulation du réseau dans Docker
si on inspecte une nouvelle fois notre réseau mon-bridge, on verra nos deux nouveaux
conteneurs dans les informations retournées :
docker network inspect mon-bridge
Manipulation du réseau dans Docker

q Supprimer et connecter un réseau Docker


Avant de supprimer votre réseau docker, il est nécessaire au préalable de supprimer tout
conteneur connecté à votre réseau docker, ou sinon il suffit juste de déconnecter votre conteneur
de votre réseau docker sans forcément le supprimer.
docker network disconnect mon-bridge alpine1
docker network disconnect mon-bridge alpine2
Une fois que vous avez déconnecté tous vos conteneurs du réseau docker mon-bridge, vous
pouvez alors le supprimer :
docker network rm mon-bridge
Cependant vos conteneurs se retrouvent maintenant sans interface réseau bridge, il faut donc
reconnecter vos conteneurs au réseau bridge par défaut pour qu'ils puissent de nouveau
communiquer entre eux :
docker network connect bridge alpine1
docker network connect bridge alpine2
FIN

Vous aimerez peut-être aussi