Outils pour utilisateurs

Outils du site


article:linux:docker

Ceci est une ancienne révision du document !


Docker - Prise de note

En cours de rédaction

Prise de note sur la mise en place de Docker, avec bonne pratique et outils intéressant.

Définition

  • Container: Une instance exécutable d'une image. Isolé des autres containers
  • Image: Un file system. Contient l'application, les dépendances, la configuration, les variables et une commande par défaut a exécuter
  • Volume: Une connexion vers un file system disponible sur la machine host
  • Container network: Par défaut un container est isolé, pour qu'ils puissent discuter entre eux, il faut définir un réseau de container

Installation

L'installation se base sur une Debian 12 propre (Debian 12 - Perfect Server)

Installation du respository:

wget https://download.docker.com/linux/debian/gpg -O /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/source.list.d/docker.list
apt update

A partir de là, nous pouvons installer docker

apt install docker-ce

Note: Docker va installer git et iptables

(Recommandé) Pour qu'un utilisateur non-root puisse epxloiter docker, nous devons l'ajouter au groupe “docker”

usermod -aG docker <user>

Commande de base

docker run

(Alias de : docker container run)
Exécute un nouveau container

docker run [--detach|-d] [--publish|-p <port>] [--tty|-t] [--interactive|-i] [--name=<name>] [--mount type=<bind|volume>,src=<path/bind|volume-name>,dst=<dest/path>] <image-name>

–detach (-d) - Sinon le contenu de la console est accroché à notre terminal
–publish (-p) - Expose le port du container. Exemple : 80:1234 - Expose le pose 1234 du container sur le port 80 de la machine hôte
–tty (-t) - Va de paire avec –interactive. Alloue un terminal dans le container
–interactive (-i) - Va de paire avec –tty. Permet d'interagir avec le container
–name= - Attribue un nom au container. Sinon un nom aléatoire sera défini
–mount - Défini un point de montage d'un volume. Type: bind = Chemin, volume = Volume existant (Plus d'info <image-name> - Nom de l'image a démarrer. Si elle n'existe pas, elle sera téléchargé depuis le Docker Hub

docker ps

(Alias de : docker container ls)
Affiche les containers en cours d'exécution

docker ps [--all|-a]

–all (-a) - Affiche également les containers éteint

docker stop

(Alias de : docker container stop)
Arrête un container

docker stop [--time|-t <secondes>] <name>

<name> - Nom du container –time (-t) - Indique si le container doit être tué s'il ne s'arrête pas proprement dans le temps indiqué

docker rm

(Alias de : docker container rm)
Supprimer un container

docker rm [--force|-f] <name>

–force (-f) - Force la suppression du container. S'il est en cours d'utilisation, envoi un SIGKILL au container

docker container prune

Supprime l'ensemble des containers qui ne sont plus en cours d'utilisation.
Note: “prune” fonctionne de la même manière avec des images (docker image prune) ou des volumes (docker volume prune)

docker build

(Alias de : docker image build)
Construire une image sur base d'un Dockerfile.
Référence: https://docs.docker.com/reference/dockerfile/

docker build --tag=<image-name> <path>

–tag (-t) - Défini un nom et un tag d'une image. Par exemple: apache:latest <path> - Généralement simplement “.” si nous nous trouvons dans le dossier contenant un Dockerfile.

docker volume

Crée un volume qui sera accessible par nos containers

docker volume create <volume-name>

Inspecter un volume existant, pour y connaitre son chemin par exemple

docker volume inspect <volume-name>

docker network create

Permet de créer un réseau de container

docker network create <network-name>

Pour l'attacher a un docker:

docker run --network <network-name> --network-alias <hostname>

–network-alias - Permet d'attribuer un hostname au container.

docker exec

Permet d'exécuter une commande dans un container en cours d'exécution

docker exec -it <container-name> <cmd>

-it - = –interactive et –tty (cf docker run)

docker compose

Permet de décrire dans un fichier l'équivalent d'un ou plusieurs docker run. Ceci permettra la reproductivité sans erreur.
Référence: https://docs.docker.com/compose/compose-file/

docker compose up --detach|-d

up - Permet de démarrer la composition, a l'instar de down qui éteindra notre composition –detach (-d) - Sinon le contenu de la console est accroché à notre terminal

Exemple:

services:
  app:
    image: node:18-alpine
    command: sh -c "yarn install && yarn run dev"
    ports:
      - 3000:3000
    working_dir: /app
    volumes:
      - ./:/app
    environment:
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_DB: todos

  mysql:
    image: mysql:8.0
    volumes:
      - todo-mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: todos

  volumes:
    todo-mysql-data:

A investiguer

article/linux/docker.1721149721.txt.gz · Dernière modification : de Gary

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

GH3.BE WIKI 2025