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.

 
Différence entre un conteneur et une VM.
 
Docker sur Linux

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

Terminal en superutilisateur

 

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 :

Terminal en superutilisateur

 

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 :

Terminal en superutilisateur

 

sudo systemctl stop docker && sudo systemctl start docker


Depuis 2022, une interface graphique, Docker Desktop est disponible sur Linux :

Terminal en superutilisateur

 

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