Docker/Introduction
Principe
modifierDocker 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 conteneurs
modifierLes 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.
Installation
modifierIl 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
.
Linux
modifierEn 2019 on trouve des binaires pour les distributions de Linux suivantes : CentOS, Debian, Fedora et Ubuntu[3].
Via Docker Desktop
modifierSolution mise en avant par la doc Docker depuis 2024, mais elle peut poser des problèmes de performances et de permissions. On peut donc installer Docker avec puis le configurer pour qu'il ne se lance plus avec Docker Desktop[4] :
docker context ls docker context use default sudo service docker start
Ubuntu - via apt
modifier
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 repo
modifierAncienne 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-installation
modifierAprès installation, le daemon Docker se lancera à chaque démarrage avec la possibilité de remonter certains conteneurs automatiquement[5].
À ce stade seul root peut utiliser Docker. Il faut ajouter les utilisateurs qui doivent le lancer au groupe "docker" :
sudo usermod -aG docker $USER
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 (l'associer aux domaines locaux dans /etc/hosts si besoin).
MacOS
modifierÀ télécharger depuis https://docs.docker.com/docker-for-mac/install/.
A noter que les performances de Docker Desktop sur Mac ne sont pas au niveau de celles sur Linux, et qu'il existe le partagiciel Orbstack[6] comme alternative.
Windows
modifierDes interfaces graphiques de gestion de conteneur existent, comme Docker Desktop ou Kitematic[7]. Elles peuvent être intégrées dans un deuxième temps.
Mais le plus simple est de télécharger et installer Docker Desktop depuis le site officiel[8], car cela installe et configure aussi Docker et Docker Compose.
- Les performances de Docker Desktop sur Windows ne sont pas au niveau de celles sur Linux.
- On ne peut l'installer que pour les versions de Windows pro, car Hyper-V est nécessaire.
- 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.
- 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[9]. Mais c'est résolu dans Docker 3.0.0.
hosts
modifierSur 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
Dans un Active Directory
modifier
- 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
- 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).
WSL
modifierAnciennement baptisé Tech Preview, Docker Desktop WSL 2 Backend utilise Windows Subsystem for Linux pour optimiser les performances de Docker sur Windows[10], en l'installant dans une VM Linux pouvant accéder à C:.
Références
modifier- ↑ https://docs.docker.com/storage/storagedriver/
- ↑ https://docs.docker.com/install/overview/
- ↑ https://docs.docker.com/install/linux/docker-ce/ubuntu/
- ↑ https://github.com/docker/desktop-linux/issues/20
- ↑ https://www.ionos.fr/digitalguide/serveur/configuration/tutoriel-docker-installation-et-premiers-pas/
- ↑ https://orbstack.dev/pricing
- ↑ https://kitematic.com/
- ↑ https://docs.docker.com/docker-for-windows/install/
- ↑ https://docs.docker.com/docker-for-windows/release-notes/#docker-desktop-community-2205
- ↑ https://engineering.docker.com/2019/10/new-docker-desktop-wsl2-backend/