Docker/Introduction
PrincipeModifier
Docker est un logiciel libre conçu pour lancer des applications dans des conteneurs logiciels. Ces conteneurs sont plus légers en ressources que les machines virtuelles car ils partagent leur noyau.
Images et conteneursModifier
Les conteneurs sont construis à partir d'images qui partages leur couches en différentiel[1].
Docker met de plus à disposition un hub pour partager des images : https://hub.docker.com/. On y trouve par exemple celles permettant de faire tourner un site en MediaWiki : https://hub.docker.com/_/mediawiki.
InstallationModifier
Il existe plusieurs versions de Docker[2] :
- Docker CE (community engine) : gratuit. Idéal sur un PC.
- Docker EE (enterprise engine) : version payante certifiée, plutôt pour les serveurs.
- Docker Enterprise : payant et dispose d'outils supplémentaires, par exemple pour gérer les images et les conteneurs.
Une fois installé, la commande suivante doit fonctionner : docker --version
.
LinuxModifier
En 2019 on trouve des binaires pour les distributions de Linux suivantes : CentOS, Debian, Fedora et Ubuntu[3].
Ubuntu - via aptModifier
apt-get install ca-certificates curl gnupg lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
docker -v
docker compose version
Ubuntu - via repoModifier
Ancienne méthode, utile pour forcer la version :
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
docker -v
curl -L "https://github.com/docker/compose/releases/download/2.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
Post-installationModifier
Après installation, le daemon Docker se lancera à chaque démarrage avec la possibilité de remonter certains conteneurs automatiquement[4].
À ce stade seul root peut utiliser Docker. Il faut ajouter les utilisateurs qui doivent le lancer au groupe "docker" :
sudo usermod -aG docker mon_utilisateur
Pour relancer Docker si besoin :
sudo systemctl stop docker && sudo systemctl start docker
Depuis 2022, une interface graphique, Docker Desktop est disponible sur Linux :
sudo apt-get install docker-desktop
Docker Desktop sur Linux est susceptible de retirer le daemon Docker qui marchait avant, sans pouvoir le remplacer.
L'IP du réseau de conteneurs est 172.17.0.1 par défaut.
MacOSModifier
À télécharger depuis https://docs.docker.com/docker-for-mac/install/.
WindowsModifier
Télécharger et installer Docker Desktop depuis le site officiel.
- Les versions antérieures à la 2.1.7 sur Windows pro en AD (active directory), imposent qu'un administrateur du domaine autorise l'accès à C: (un admin local ne suffit pas).
- En avril 2020 la version 2.3 (et les suivantes, au moins : 2.3.0.1, 2 et 3) freeze très régulièrement (broken pipe). Il était donc préconisé d'utiliser la 2.2.0.5[5]. Mais c'est résolu dans Docker 3.0.0.
Uniquement pour les versions de Windows pro, car Hyper-V est nécessaire. À télécharger depuis https://docs.docker.com/docker-for-windows/install/.
Une interface graphique de gestion de conteneur nommée Kitematic[6] peut être intégrée dans un deuxième temps.
Toute désinstallation de Docker supprimera les images construites sur le poste, et pourra donc occasionner de longs téléchargements après réinstallation et relance.
Sur Windows pro en AD, il faut ajouter le compte qui utilisera Docker Desktop dans le groupe "docker-users" :
net localgroup docker-users AD\mon_compte /add
hostsModifier
Sur Windows, Docker Desktop modifie le fichier hosts en ajoutant :
# Added by Docker Desktop
192.168.1.20 host.docker.internal
192.168.1.20 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
WSLModifier
Anciennement baptisé Tech Preview, Docker Desktop WSL 2 Backend utilise Windows Subsystem for Linux pour optimiser les performances de Docker sur Windows[7], en l'installant dans une VM Linux pouvant accéder à C:.
RéférencesModifier
- ↑ https://docs.docker.com/storage/storagedriver/
- ↑ https://docs.docker.com/install/overview/
- ↑ https://docs.docker.com/install/linux/docker-ce/ubuntu/
- ↑ https://www.ionos.fr/digitalguide/serveur/configuration/tutoriel-docker-installation-et-premiers-pas/
- ↑ https://docs.docker.com/docker-for-windows/release-notes/#docker-desktop-community-2205
- ↑ https://kitematic.com/
- ↑ https://engineering.docker.com/2019/10/new-docker-desktop-wsl2-backend/