Docker

Docker est un programme gérant des conteneurs, à l'image d'une VM, mais avec l'avantage de réutilisé le kernel de la machine pour allegé le poids du conteneur. Cela permet de faire tourner des serveurs a l’intérieur d'un serveur, en utilisant un minimum de ressources

Installation

Installer docker est très simple, si on oublie tout ses dérivé (docker-compose, kubernetes, etc..) que je ne maitrise pas..

Debian-based distro :

sudo apt install docker

Arch-Based distro :

sudo pacman -Sy docker

Faire tourner un Docker

Pour démarrer un docker rien de plus simple :

docker run nginx

Ceci est un prompt simple lançant un serveur nginx. mais pas vraiment utilisable en l'état. Il faudrait ajouter des arguments…

Voici ceux que j'utilise : 

  • -d pour Detach, permet de faire tourner le conteneur en arrière plan
  • -i pour interactive, permet de se connecter sur un terminal dans le conteneur.
  • -v volume:path pour Volume, permet de lier une partie du système de fichier du conteneur à celui de l'hôte afin de conserver des données.
  • –restart=always pour dire à docker de redémarrer le conteneur dès qu'il le vois éteint, lors d'un reboot de l'hôte par example…
  • –network=réseau pour lié un réseau docker, nous reviendrons sur ce détail plus tard mais sachez que les différent “réseau” docker sont très puissant.
  • –ip pour spécifier une adresse ip du conteneur (en fonction du réseau choisit)
  • –name permet de donner un nom au conteneur simplifiant la gestion quand vous en faites tourner plusieurs.
  • -p 80:80 pour port, est un argument également très utilisé, car il permet de lier un port réseau de l'hôte directement au conteneur (ici je lie le port 80 au port 80).

On peut donc en déduire une commande permettant de faire tourner un serveur nginx sur votre machine :

docker run -id --restart=always -v /var/www:/var/www -p 80:80 --name nginx-test nginx

Autres Commandes Utiles

Pour Gérer vos Docker vous aurez besoin de

docker ps
qui va lister vos conteneur, avec diverse informations sur le réseau, le volume, l'état du conteneur etc…
docker stop
permet de stopper un conteneur
docker remove
pour supprimer un conteneur arrêté.

Les Réseau Docker

Il existe plusieurs façon de gérer la partie réseaux des conteneur docker.

1 - Le default bridge : Dans ce réseau créer par défaut à l'installation de docker, le conteneur utilise un sous-réseau accessible depuis le système hôte. Pour y accéder de l'exterieur il faut “publier” les port nécessaire ie ajouter l'argument -p 80:80 relie le port 80 de l'hôte vers le port 80 du conteneur ou utiliser un reverse proxy sur le système hôte voir NGINX reverse proxy

2 - User-Defined bridge : Ce type de réseau fonctionne comme le précédent, a la différence qu'il faut créer les sous-réseaux que vous voulez utiliser avec docker network create monRéseau vous pourrez ainsi spécifier l'adresse réseau de monRéseau

Les Volumes

To do

Haut de page