Lexique et commandes

Billet

Le mot Docker est entouré de tout un tas de termes qu'il n'est pas toujours facile de comprendre.

Application Docker Desktop

1. Lexique


Docker

Docker est une plateforme open source permettant de créer et gérer des applications dans des conteneurs.
Le gros avantage de Docker est sa simplicité pour déployer des environnements de développement d'applications pour ensuite les déployer en production.

Image

C'est un canevas (template) non modifiable contenant un système d'exploitation et des application. C'est la base d'un conteneur.
Par exemple, l'image jcpd/docker-dotclear:stable contiendra un système Alpine linux avec un serveur web Nginx et l'application Dotclear prête à être déployer.

Container

C'est l'instance active d'une image. Le conteneur exécute des processus pour lequel il a été spécialement créer à partir d'une image.
Par exemple, votre conteneur issue de l'image jcpd/docker-dotclear va exécuter un serveur web avec l'application Dotclear.
Une machine virtuelle embarque un système d'exploitation complet, un ensemble de logiciels et à ses propres ressources matériels, alors qu'un conteneur partage ses ressources avec les autres conteneurs. En ce sens un conteneur sera plus léger, n'utilisant que se dont il a besoin à un instant donnée.

Volume

Les volumes sont utilisés pour stocker des données du conteneur. Ils permettent de garder ces données intacte lors de l'arrêt ou la mise à jour d'un conteneur.
Ces volumes peuvent être créé soit dans Docker avec des options pour utiliser un type de volume particulier, soit sur le système hôte qui permet un accès au contenu directement depuis l'hôte.

Hub

C'est la plateforme officiel Docker de distribution d'images Docker.

Registry

Plateforme sur laquelle sont mis à disposition des images Docker.
On peut également créer son propre registre et il peut même être privé.
Le principal registre est Docker Hub. Github propose également sa plateforme, les images commenceront par ghcr.io/, ainsi que Amazon, Google, etc...

Network

L'environnement Docker a ses propres réseaux qui peuvent être créés liant des container entre eux, vers l'extérieur, etc...
Par défaut Docker utilise des plages d'IP commençant par 172.x.x.x
Les réseaux Docker permettent également de communiquer entre conteneur par leur nom d'hôte.

Dokerfile

C'est un fichier contenant les informations permettant de compiler une image Docker.
Le plus souvent la base d'un Dockerfile est une image Docker !

2. Commandes

Il y a quelques commandes que vous risquez de rencontrer et d'utiliser.

pull

La commande pull permet de télécharger une image Docker depuis un registre.

docker pull jcpd/docker-dotclear:latest


stop restart

Les commande stop, start, restart permettent de stopper, démarrer, redémarrer un conteneur.

docker stop dcstable
docker restart dcstable

La même commande peut être utiliser sur une partie d'un fichier docker-compose avec la commande :

docker compose -p dcstable stop


network

Permet de gérer les reseaux Docker.

# Lister les réseaux
docker network list
# Voir le détail d'un réseau
docker network npm inspect
# Créer un réseau simple
docker network create npm


compose

Permet de gérer les compositons configuré dans une fichier généralement nommé docker-compose.yml. Une composition utilise la syntaxe Yaml, le ficiher contient toutes les information pour lancer un ou plusieurs conteneurs ainsi que leurs volumes et réseaux. Exemple de fichier docker-compose.yml :

networks:
  default:
    name: npm

volumes:
    npm:

services:
  # Nginx proxy manager
  npmapp:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    container_name: npmapp
    ports:
      - 80:80
      - 443:443
      - 61345:81
    volumes:
      - npm/data:/data
      - npm/letsencrypt:/etc/letsencrypt
    healthcheck:
      test: ["CMD", "/usr/bin/check-health"]
      interval: 10s
      timeout: 3s

Execution de la composition :

docker compose up -d

Il est possible de stopper ou démarrer des conteneurs d'une composition, par exemple pour mettre à jour une image :

docker compose down
docker compose pull npmapp
docker compose up -d


run

Lance un conteneur avec des options

docker run -d --name dotclear -p 80:80 -v dotclear:/var/www/dotclear -e DC_DBDRIVER=sqlite -e DC_DBNAME=/var/www/dotclear/sqlite.db -e DC_ADMINMAILFROM=contact@exemple.com jcpd/docker-dotclear:latest

Je vous laisse lire la documentation officiel car il y de trop nombreuses possibilités sur cette commande.

build

Compile une image Docker à partir d'un fichier Dokerfile.
Exemple de fichier dockerfile :

FROM php:8.4
RUN apt-get update
RUN apt-get nano
RUN docker-php-ext-install pdo_mysql

Et la commande pour compiler l'image :

docker build -t mon_image


Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : https://docker.dotclear.watch/trackback/250