Aller au contenu

Docker notes

De Marmits Wiki

Dockerfile est un script de commandes utilisé pour assembler une image Docker
Compose permet de définir et d’exécuter des applications multi-conteneurs.

Dockerfile

Un Dockerfile est un plan en texte brut englobant toutes les directives de construction d’une image Docker. Cette image sert de base pour l’exécution de code dans un conteneur Docker.
Lorsqu’un utilisateur lance la commande Docker run avec une application spécifiée, comme WordPress, Docker exploite les instructions du Dockerfile pour assembler l’image, garantissant ainsi une exécution transparente du conteneur.

FROM: permet de définir l'image source (appeler une seule fois)
RUN: permet d'éxécuter des commandes dnas le conteneur
ADD: permet d'ajouter des fichiers dans le conteneur
WORKDIR: permet de définir le répertoire de travail
EXPOSE: permet de définir les ports d'écoute par défaut
VOLUME: permet de définir des volumes utlisables
CMD: permet de définir la commande par défaut lors de l'éxécution du conteneur

Compose

Conçu pour définir et orchestrer des applications multi-conteneurs, facilitant ainsi les configurations d’applications complexes. Il utilise des fichiers YAML pour définir les services et les réseaux, ce qui rend les configurations plus simples et lisibles par l’homme.
De plus, Docker Compose prend en charge la mise à l’échelle des services à la fois horizontalement et verticalement, répondant ainsi à la demande d’applications plus robustes. De plus, il permet la réplication du même environnement à différentes étapes du cycle de vie de l’application (développement, test, transfert et production).

Configurer les services, les réseaux et les volumes de votre application.
Une STACK est un ensemble de conteneur docker lancé via un docker compose

Commandes

Docker compose up

- Permet de démarrer l'ensemble des conteneurs en arrière-plan
docker-compose up -d
- Statut d'une stack docker compose:
docker-compose ps
- Voir les logs d'une stack docker composer
docker-compose logs -f --tail 5
- Stopper une stack docker composer
docker-compose stop
- Détruire la stack (les ressoruces crées)
docker-compose down
- Valider une stack (syntax) du fichier docker-composer.yml
docker-compose config

Exemples compose.yml

Déclarer un service et son image

services:
	service1: (ex db ou database)
		image: (ex: mysql:5.7)
		ou
		build: chemin vers un DockerFile
		volumes:
			- db_data:/var/lib/mysql (emplacement des datas)
			ou
			/data/mysql:/var/lib/mysql
		restart:always
		environment:
			MYSQL_ROOT_PASSWORD:rootpass
			MYSQL_DATABASE:test
			MYSQL_USER:usertest
			MYSQL_PASSWORD:userpass

	autre_service:
		depends_on:
		 - service1
		image: wordpress:lastest
		ports:
			-"8000:80"
		restart:always
		environment:
			WP_DB_HOST:service1:3306
			WP_DB_NAME:test
			WP_DB_USER:usertest
			WP_DB_PASSWORD:userpass

	volumes: 
		db_data:{}
image: permet de spécifier l'image source pour le conteneur
build: permet de spécifier le DockerFile source pour créer l'image du conteneur
volume: permet de spécifier les points de montage entre ke système hôte et les conteneurs
restart: permet de définir le comportement du conteneur en cas d'arrêt du processus
environnement: permet de définir les variables d'env
depends-on: permet de dire que le conteneur depend d'un autre conteneur
ports: permet de définir les pots disponibles en la machine hôte et le conteneur