« 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> | ||
- 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 | |||
</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]] | ||