Conteneurisation du service Réseau interne - CardinPatson/SysAdmin GitHub Wiki

Conteneurisation du service

Utilisation de Docker pour le service

Comme pour les autres services, nous avons utilisé un conteneur Docker. L'avantage d'un conteneur Docker est qu'il possède son propre environnement d'exécution et donc ses propres répertoires. À noter qu'il faut être en ROOT pour utiliser Docker. Chaque conteneur est créé à partir d'une image, créée elle-même à partir d'instructions listées dans un Dockerfile. Grâce à docker-compose, un fichier écrit au format yml, il est possible de lister l'ensemble des conteneurs à déployer.

Le Dockerfile

Le Dockerfile est un fichier où chaque ligne est une instruction :

  • FROM : première ligne obligatoire, c'est l'image sur laquelle on se base.
  • RUN : spécifie une commande à exécuter lors du build de l'image.
  • COPY : copie les fichiers qu'on veut utiliser.
  • CMD : spécifie une commande qui sera exécutée lors du lancement du conteneur.
  • ENV : définit les variables d'environnement.
  • WORKDIR : permet de changer de répertoire.
  • EXPOSE : permet d'exposer un port vers l'extérieur du conteneur.
  • ...

Dockerfile resolver

Dockerfile SOA interne

Dockerfile intranet

Dockerfile Samba

Obtenir une image

On peut récupérer une image via le DockerHub qui est un répertoire en ligne qui met à disposition des millions d'images Docker.

docker pull <nom_image>

On peut également récupérer une image en compilant un Dockerfile avec la commande suivante

docker build -t <nom_image>

Liste des images installées

docker images

Supprimer une image

docker rmi <id_image>

Le conteneur

Démarrer un conteneur

docker run -dp 53:53 --name <nom_image> permet de créer et de démarrer le conteneur à partir de l'image

Liste des conteneurs Docker lancés

docker ps docker ps -a affiche la liste de tous les conteneurs même ceux éteints.

Exécuter une commande dans un conteneur

docker exec -it <nom_conteneur> <nom_commande>

Arrêter un conteneur

docker stop <id_conteneur>

Redémarrer un conteneur

docker restart <id_conteneur>

Supprimer un conteneur

docker rm <id_conteneur>

Le docker-compose

Avantages du docker-compose :

  • portabilité : DC permet de créer ou de supprimer un environnement de développement complet avec une seule commande.
  • test : permet de reproduire un environnement identique aux circonstances de production.
  • plusieurs environnements isolés sur un seul hôte : plusieurs copies sur une seule machine, aucune interférence.

Un fichier docker-compose au format YAML définit la version, les services, les images, les noms, les réseaux, les volumes, les ports, les liens...

On peut détailler certaines propriétés dans la déclaration d'un conteneur au sein d'un docker-compose telles que :

  • build : permet de renseigner le Dockerfile à partir duquel on va construire l'image utilisée par le conteneur
  • volumes : permet de persister les données grâce à un répertoire virtuel
  • container_name : permet de donner un nom au conteneur
  • networks : permet d'identifier le réseau sur lequel se connecter
  • ports : permet le mappage
  • ...

Dans le Docker-compose des services internes, on peut retrouver la structure du fichier ainsi que les commentaires détaillés.

Lancer un docker-compose

docker-compose up

Arrêter un docker-compose

docker-compose down

Sources :

https://www.axopen.com/blog/2021/03/docker-presentation-concepts-cles/

https://www.axopen.com/blog/2021/03/docker-tuto-deployer-conteneurs/

https://www.youtube.com/watch?v=fqMOX6JJhGo

https://docs.docker.com/compose/

https://gabrieltanner.org/blog/docker-compose/

⚠️ **GitHub.com Fallback** ⚠️