Aller au contenu

« Docker notes » : différence entre les versions

De Marmits Wiki
Aucun résumé des modifications
Ligne 16 : Ligne 16 :
* <code>LABEL</code>: Ajoute des métadonnées à l’image dans un format clé/valeur.
* <code>LABEL</code>: Ajoute des métadonnées à l’image dans un format clé/valeur.
* <code>ENV</code>: Définit une variable d’environnement.
* <code>ENV</code>: Définit une variable d’environnement.
* <code>CMD</code>: Définit la commande à exécuter lors du lancement de l’image. Peut également être utilisé pour définir l’argument par défaut de l’instruction  
* <code>CMD</code>: Définit la commande à exécuter lors du lancement de l’image. Peut également être utilisé pour définir l’argument par défaut de l’instruction <code>ENTRYPOINT</code>
<strong>ENTRYPOINT</strong>
* ENTRYPOINT: Détermine l’exécutable qui doit être lancé au démarrage du conteneur.
* ENTRYPOINT: Détermine l’exécutable qui doit être lancé au démarrage du conteneur.
* Utilisez <code>CMD</code> pour passer des options à cet exécutable.
* Utilisez <code>CMD</code> pour passer des options à cet exécutable.

Version du 5 février 2025 à 09:11

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.

instructions

  • FROM: indique l’image de départ sur laquelle on va se baser. (appeler une seule fois)
  • RUN: Exécute une commande pour contribuer à la construction de votre image.
  • ADD: permet d'ajouter des fichiers dans le conteneur
  • WORKDIR: permet de définir le répertoire de travail
  • EXPOSE: Ouvre un ou plusieurs ports par défaut du réseau.
  • VOLUME: Crée un point de montage.
  • COPY: Ajoute un fichier dans l’image.
  • LABEL: Ajoute des métadonnées à l’image dans un format clé/valeur.
  • ENV: Définit une variable d’environnement.
  • CMD: Définit la commande à exécuter lors du lancement de l’image. Peut également être utilisé pour définir l’argument par défaut de l’instruction ENTRYPOINT
  • ENTRYPOINT: Détermine l’exécutable qui doit être lancé au démarrage du conteneur.
  • Utilisez CMD pour passer des options à cet exécutable.

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