Vous êtes sur la page 1sur 9

Compte rendu Docker

Quand on veut déplacer le code d’une application d’une machine à l’autre, pour éviter les bugs, on utilise
docker. Il fonctionne en créant des conteneurs. Ils permettent d’utiliser le code de l’app dans un
environnement isolé, grâce à des commandes. Les conteneurs sont légers, ils peuvent être déplacés
facilement d’un système à l’autre.
On lance une image docker en tant que conteneurs. Donc on converti le code en tant qu’image docker avec
le fichier dockerfile. Il est placé dans le répertoire de l’application (à la racine).

DockerFile :
A partir du dockerfile, on exécute docker build qui va créer l’image.

Construire l’image :

-Construire une image à partir d’un Dockerfile : docker build -t image .

-Construire une image à partir d’un Dockerfile en spécifiant la valeur du nom du serveur (hostname) :

docker build --build-arg SERVER_NAME=database -t image3 .

(Dans SERVER_NAME, on peut mettre n’importe quel nom)

Lancer l’image :

docker run -p 8080:80 -d image

Quand on lance l’image, le conteneur se créée ainsi que l’image. Un seul conteneur va être crée. L’image
docker est ce qu’on utilise pour créer un conteneur (toutes les instructions qui nous permettent de créer un
ou plusieurs conteneurs y sont stockés). Le conteneur est une instance en cours d’exécution de l’image. Il
contient les éléments nécessaires pour exécuter l’application qui est défini dans l’image docker :

Quand une image est utilisée par le conteneur, elle est dans l’état « in use » :
Explication des lignes du dockerFile :

-from wordpress : on crée une image à partir de l’image wordpress

-ARG SERVER_NAME : argument de build, le nom du serveur va etre spécifié quand on crée l’image.

-RUN echo "ServerName $SERVER_NAME" >> /etc/apache2/apache2.conf : on ajoute le nom du


serveur dans le fichier /etc/apache2/apache2.conf 

-RUN rm -rf wp-content && \


mv /usr/src/wordpress/* . && \
rm -rf /var/www/html/wp-content/plugins && \
rm -rf /var/www/html/wp-content/themes

On supprime le wp-content de l’image wordpress car ce répertoire contient des fichiers inutiles.

On déplace tous les fichiers qui sont dans ce répertoire /usr/src/wordpress/* et on les met à la racine du
répertoire courant (/var/www/html) :

On supprime les répertoires /var/www/html/wp-content/plugins et /var/www/html/wp-content/themes


Cela va supprimer les plugins et thèmes installé par défaut avec l’image wp.

-COPY --chown=www-data:www-data configuration/uploads.ini /usr/local/etc/php/conf.d/uploads.ini


COPY --chown=www-data:www-data plugins /var/www/html/wp-content/plugins
COPY --chown=www-data:www-data themes /var/www/html/wp-content/themes
On copie nos fichiers, qui contiennent le code, dans les répertoires wp (wp-content/plugin et
wp-content/themes) et dans le répertoire de configuration ensuite :

Dans le terminal de l’image que l’on a construit puis lancé, on peut voir tous les changements du
dockerfile.

Les volumes sont des répertoires persistants, ils servent à stocker des informations même si le conteneur
est supprimé. Ils sont utiles pour partager des fichiers (entre les conteneurs ou entre le système et
conteneur). Pour lier le volume et le conteneur on utiliser l’option -v, quand on lance docker run.

Exemple : docker run -ti --name vtest_c -v data-test:/data vtest

A Tester

Fichier Docker compose :


Docker Compose est un fichier python qui permet de décrire des conteneurs dans un fichier yml. Il sert à
créer et gérer l’architecture d’une application dont les composants tels que le code, la base de données,
etc. sont éparpillés sur plusieurs conteneurs.

Docker compose sert à simplifier les déploiements sur des environnements multiples.
Docker compose est déjà installé sur un système Windows. Les commandes de docker compose sont
proche des commandes de docker.

Création du fichier docker-compose.yml :

Pour déployer l’ensemble des composants du site dans des conteneurs docker, on a besoin de 2 conteneurs
: mysql (base de données) et wp (système de fichiers).

On doit d’abord créer le fichier docker-compose.yml avant d’utiliser les commandes de docker compose.
Il doit être crée à la racine du projet. Toutes les ressources du projet doivent être décrite ici.

-On commence par spécifier la version à utiliser.


-Déclarer les services avec leurs images : création du stack wp : Les conteneurs crées sont décrit sous
l’argument « services » (ici on a database, website, phpmyadmin). A chaque service, on spécifie l’image
docker que l’on veut utiliser.
-Les variables d’environnement sont définis avec l’argument « environnement »: on donne les
valeur du mot de passe, du nom de la base, du nom de l’user …

-La politique de redémarrage du conteneur : permet de redémarrer automatique un conteneur s’il


s’arrete. (restart : always)

Dans le service website, on crée un conteneur qui va faire fonctionner notre site avec wp.

-Depends_on : on crée une dépendance entre 2 conteneurs. Docker va démarrer database avant de
démarrer website car wp dépends de la base de donnée pour fonctionner.

-Ports : spécifie qu’on veut exposer un port de notre machine hote vers notre conteneur pour le
rendre accessible depuis l’exterieur.

- Le conteneur sera construit via le dockerFile avant de l’éxécuter. (dans build, on a mis le chemin
vers dockerfile) :
-Définir le volume pour avoir des données persistantes : permet de stocker l’ensemble du contenu du
dossier mysql, dans un disque persistant (les données vont pouvoir être gardé en local).

Commandes docker compose :

Stack : Plusieurs conteneur lancé via un seul fichier docker-compose.yml

-Valider la syntaxe du fichier docker compose (pour éviter les erreurs) : docker-compose config

-Création des conteneurs : docker-compose up (-d)


-Voir le statut d’une stack docker compose : voir si tous les conteneurs sont dans un état
fonctionnel (après les avoir lancés) : docker-compose ps

-Voir les logs sur les différents conteneurs de façon continu : docker-compose logs -f –tail 5

Ou sinon, on peut aussi voir les logs dans docker desktop dans « view details » :

-Arrêter une stack docker-compose: docker-compose stop


-Supprimer la stack docker compose : docker-compose down

s
Kubernetes

-Lister conteneur : docker ps


-voir commandes docker : docker
-éxécuter une image à partir du registry (docker hub)
-Obtenir toutes les images présentes sur le système : docker images
-copy : on ajoute des fichiers, qui sont dans le repertoire local sur ma machine, au sein du conteneur dans
un répertoire.
-docker pull : télécharger image à partir du docker hub

Supprimer un conteneur : docker rm ID_du_conteneur

Vous aimerez peut-être aussi