« Docker notes » : différence entre les versions

Aucun résumé des modifications
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 6 : Ligne 6 :
Un <code>Dockerfile</code> 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.<br />
Un <code>Dockerfile</code> 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.<br />
Lorsqu’un utilisateur lance la commande Docker run avec une application spécifiée, comme WordPress, Docker exploite les instructions du <code>Dockerfile</code> pour assembler l’image, garantissant ainsi une exécution transparente du conteneur.
Lorsqu’un utilisateur lance la commande Docker run avec une application spécifiée, comme WordPress, Docker exploite les instructions du <code>Dockerfile</code> pour assembler l’image, garantissant ainsi une exécution transparente du conteneur.
=== instructions ===
* <code>FROM</code>:  indique l’image de départ sur laquelle on va se baser. (appeler une seule fois)
* <code>RUN</code>: Exécute une commande pour contribuer à la construction de votre image.
* <code>ADD</code>: permet d'ajouter des fichiers dans le conteneur
* <code>WORKDIR</code>: permet de définir le répertoire de travail
* <code>EXPOSE</code>:  Ouvre un ou plusieurs ports par défaut du réseau.
* <code>VOLUME</code>:  Crée un point de montage.
* <code>COPY</code>: Ajoute un fichier dans l’image.
* <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>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>
* <code>ENTRYPOINT</code>: 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.
sources: [https://blog.microlinux.fr/formation-docker-09-construire/ microlinux.fr docker construire]
== 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.<br />
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.<br />
Une <code>STACK</code> est un ensemble de conteneur docker lancé via un <code>docker compose</code></br />
=== Commandes ===
<code>Docker compose up</code>
<pre>
<pre>
FROM: permet de définir l'image source (appeler une seule fois)
- Permet de démarrer l'ensemble des conteneurs en arrière-plan
RUN: permet d'éxécuter des commandes dnas le conteneur
docker-compose up -d
ADD: permet d'ajouter des fichiers dans le conteneur
- Statut d'une stack docker compose:
WORKDIR: permet de définir le répertoire de travail
docker-compose ps
EXPOSE: permet de définir les ports d'écoute par défaut
- Voir les logs d'une stack docker composer
VOLUME: permet de définir des volumes utlisables
docker-compose logs -f --tail 5
CMD: permet de définir la commande par défaut lors de l'éxécution du conteneur
- 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
</pre>
 
=== Exemples compose.yml ===
Déclarer un service et son image
<pre>
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:{}
</pre>
 
<pre>
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
</pre>
</pre>


[[Catégorie:Docker]]
[[Catégorie:Docker]]