Installation de Docker sur Ubuntu 22.04

Voici comment installer Docker en 9 Ă©tapes sur Ubuntu Jammy 22.04 en suivant la documentation officielle.
  1. Mise à jour de la base de données des packages :
    sudo apt update
  2. Installation de packages utiles pour la suite (peut-être déjà présents) :
    sudo apt-get install ca-certificates curl gnupg lsb-release
  3. Ajout de la clé GPG du repository de Docker :
    sudo mkdir -p /etc/apt/keyrings
    Puis :
    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
  4. Nouvelle mise à jour de la base de données des packages (pour prendre en compte le repository ajouté) :
    sudo apt update
  5. Installation des packages Docker :
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  6. Vérification de la version de Docker installée :
    sudo docker version
    Ce qui donne dans notre cas :
    Client: Docker Engine - Community
     Version:           20.10.17
     API version:       1.41
     Go version:        go1.17.11
     Git commit:        100c701
     Built:             Mon Jun  6 23:02:46 2022
     OS/Arch:           linux/amd64
     Context:           default
     Experimental:      true
    
    Server: Docker Engine - Community
     Engine:
      Version:          20.10.17
      API version:      1.41 (minimum version 1.12)
      Go version:       go1.17.11
      Git commit:       a89b842
      Built:            Mon Jun  6 23:00:51 2022
      OS/Arch:          linux/amd64
      Experimental:     false
    ...
    ...
    
  7. VĂ©rification de l'Ă©tat du service Docker :
    sudo systemctl status docker
    Ce qui donne pour nous :
    â—Ź docker.service - Docker Application Container Engine
       Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
       Active: active (running) since Fri 2022-07-04 17:55:53 CEST; 6min ago
    TriggeredBy: â—Ź docker.socket
         Docs: https://docs.docker.com
       Main PID: 12804 (dockerd)
        Tasks: 17
       Memory: 39.0M
        CPU: 1.145s
       CGroup: /system.slice/docker.service
           └─12804 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    
  8. On peut alors essayer le traditionnel Hello World avec la commande :
    sudo docker run hello-world
    Qui affiche :
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    2db29710123e: Pull complete
    Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    ...
    ...
    
  9. Pour Ă©viter d'entrer sudo devant la commande docker on peut donner les droits sur Docker Ă  l'utilisateur courant avec :
    sudo groupadd docker
    Suivi de :
    sudo usermod -aG docker $USER
    Puis se délogger et se relogger pour que les nouveaux droits soient pris en compte. Et l'on peut maintenant exécuter le Hello World sans sudo :
    docker run hello-world
    Mais attention aux trous de sécurité, voir Docker daemon attack surface.
Liens utiles