Découvrir DOCKER

Découvrir DOCKER

Installation de Docker

Pour Windows Server 2022, 2019,2016:

https://docs.microsoft.com/fr-fr/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server

Pour les Desktop Windows :

https://docs.microsoft.com/fr-fr/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-10-and-11

Pour Linux Famille Debian :

apt install docker.io

Pour Linux Famille CentOS :

## On supprime les éventuelles anciennes versions de Docker

 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

## On ajoute le repo pour Docker

sudo yum install -y yum-utils

 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

## On installe ensuite la dernière version de Docker engine

 sudo yum install docker-ce docker-ce-cli containerd.io --allowerasing

Qu’est-ce qu’une image Docker?

Une image Docker est un fichier immuable, qui constitue une capture instantanée d’un conteneur. Généralement, les images sont créées avec la commande « docker build ». Et puis, ils vont produire un conteneur quand ils sont lancés avec la commande « run ». En revanche, dans un registre Docker, les images sont stockées comme « registry.hub.docker.com ». Comme elles peuvent devenir assez volumineuses, les images sont conçues pour composer des couches de d’autres images, ce qui permet d’envoyer une quantité minimale de données lors du transfert des images sur le réseau.

## par defaut "docker hub est installé sur votre machine et vous 
## permet de trouver des images de conteneurs installables 

Utiliser le Hub

une des images les plus connues et des plus légère est l’image alpine par exemple pour l’installer on fait comme ceci :

La Commande Docker

aide sur la commande Docker
Aide sur la commande Docker

Installation Images Docker

installation de l’image Alpine
L’image est exécutée puis s’arrête ce qui est tout à fait normal
le ps -a avec les 3 images
on peut lister les images téléchargées comme ceci :
Effacer une image (attention elle ne doit pas être attaché à un conteneur sinon

docker rm nom_du_conteneur

Qu’est-ce qu’un conteneur Docker?

Un conteneur Docker est une instance exécutable d’une image. En utilisant l’API ou la CLI de Docker, nous pouvons créer, démarrer, arrêter, déplacer ou supprimer un conteneur. De manière avantageuse, nous pouvons connecter un conteneur à un ou plusieurs réseaux, y attacher de la mémoire ou créer une nouvelle image sur la base de son état actuel. De plus, il consiste en une image Docker, un environnement d’exécution et un ensemble d’instructions standard.

Même chose avec le mode Detach pour créer un conteneur
On peut faire la même chose avec une image Ubuntu par exemple
ici on est ds le conteneur du Linux
Ici plus réel on crée un conteneur qui se nomme Web d’une image nginx avec une redirection de port sur le port 8080 de la machine hôte.
Résultat sur le navigateur de la machine hôte
Extrait du docker inspect du conteneur web
suite de l’extrait du fichier de config du conteneur web

Monter un volume persistant

Dans un premier temps je vais activer un shell ds mon conteneur pour modifier le stockage de mon serveur nginx (conteneur web precedemment créé)
Je fais un vim de mon fichier de config de nginx pour montrer que j’ai la main (attention l’autocompletion ne fonctionne plus dans les conteneurs)

Dans ce cas présent si on supprime de maniére brutale le conteneur on va s’apercevoir que l’on perd la modification des datas du site c’est la qu’interviennent les volumes

je crée un repertoire /srv/data/nginx sur ma machine locale
je supprime mon conteneur précédent pour en recréer un avec un volume attaché
j’obtiens un forbidden !!! Normal mon repertoire est vide
je crée et édite un index.html
Maintenant si je supprime mon conteneur la data étant stockée sur mon host j’ai toujours mes données

Docker Volume

les commandes de Volume Docker
créer un volume, puis lister les volumes, puis inspecter un volume
créons un volume et unnouveau conteneur sur le 8081 du host avec une image nginx
Vérifions que cela fonctionne !
un petit inspect pour avoir le chemin du volume persistant des datas du nginx
allons dans le nouveau emplacement du host
Modifions le index pour tester
voila une autre façon de monter un volume

Créer une image à partir d’un conteneur

on installe des packages et on parametre la ubuntu .. Puis on retourne sur le host et on fait un docker ps pour avoir le numéro ID de conteneur ..et avec la commande docker commit on transforme le conteneur en image .

WordPress avec docker-compose

On commence par l’installation de docker-compose

docker-compose --version

Si ça ne fonctionne pas, utilisez cette commande :

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

On définit ensuite le chemin du projet:
1) Créez un répertoire dans lequel vous mettrez le fichier .yml permettant la configuration du docker-compose mais également de stockage au WordPress
2) Créez un fichier dans ce répertoire que vous nommerez docker-compose.yml

Le fichier docker-compose.yml permettra d’aller chercher directement les images dont vous aurez besoin et de les lier entre elles. Modifiez le fichier docker-compose.yml

version: "3.9"
    
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - wordpress_data:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress_data: {}

Important : Faites attention à la version de mysql

Ensuite, mettez vous dans le répertoire dans lequel vous avez mis le fichier et exécuter la commande suivante.

Voilà c’est terminé ! Maintenant allez sur votre navigateur et entrez votre adresse locale et le port que vous avez utilisé dans le fichier docker-compose.yml.

Plus qu’à installer et configurer votre WordPress !

Docker Les Réseaux

Image à partir dun Dockerfile

www.pdf24.org    Envoyer l'article en PDF   
Posted on: 21 décembre 2021tontonfred