Installation et configuration de Docker
C'est drôle mais d'abord c'est quoi Docker ?
C'est un logiciel qui permet de venir encapsuler des logiciels et de ce fait les rendres ultra portable. Par exemple admettons vous avez développer un logiciel en C++ sur Debian et vous souhaitez le rendre utilisable sur Windows sans avoir à l'adapter, vous pouvez faire une image Docker du logiciel et le rendre compatible de partout du moment que c'est la même architecture (x86... ARM...)
Pour installer Docker rien de plus simple, faisons d'abord les dossiers basiques sinon il va être capricieux lors du téléchargement d'images par exemple :
# mkdir /root/.docker
# echo "{}" > /root/.docker/config.json
Puis installons les paquets obligatoires pour l'ajout correct des dépôts de Docker tiers :
apt install -y curl gnupg lsb-release
Puis on ajoute les dépôts
# curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
Et maintenant on peut installer Docker et le plugin docker-compose
apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-plugin-compose
Maintenant on peut déjà envisagé de créer un fichier docker-compose.yml, donc pour ça on fait un dossier dédié à nos conteneurs
# mkdir ~/Docker && cd ~/Docker
A présent on peut aussi créer notre dossier et fichier de base
# mkdir applications && touch docker-compose.yml
Nous pouvons faire notre fichier docker-compose.yml
version: "3.9"
services:
watchtower:
image: containrrr/watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/.docker/config.json:/config.json
command: --label-enable --cleanup --interval 300
labels:
- "com.centurylinklabs.watchtower.enable=true"
networks:
no-internet:
driver: bridge
internal: true
internet:
driver: bridge
enable_ipv6: true
ipam:
config:
- subnet: "fd00:dead:beef::/48"
Par défaut je mets watchtower, c'est un conteneur qui permet de faire des mises à jours automatiques de conteneurs (pour pouvoir le rajouter, il faut mettre le "labels" sur chaque conteneur).
Côté réseau, une partie avec et sans internet, par exemple les bases de données uniquement en local etc.
L'avantage de Docker c'est que l'on peut vraiment limiter au maximum les interractions avec le réseau extérieur :p
No Comments