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