⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Installer Docker Engine sur Raspberry Pi OS (32-bit)

Pour commencer avec Docker Engine sur Raspberry Pi OS, assurez-vous de répondre aux prérequis, puis suivez les étapes d'installation.

Prérequis

Exigences du système d'exploitation

Pour installer Docker Engine, vous avez besoin d'une version 32-bit de l'une des versions Raspberry Pi OS suivantes :

  • Raspberry Pi OS Bookworm 12 (stable)
  • Raspberry Pi OS Bullseye 11 (oldstable)

Docker supporte Raspberry Pi OS sur les architectures armhf.

Désinstaller les anciennes versions

Avant de pouvoir installer Docker Engine, vous devez désinstaller tous les paquets en conflit.

Votre distribution Linux peut fournir des paquets Docker non officiels, qui peuvent entrer en conflit avec les paquets officiels fournis par Docker. Vous devez désinstaller ces paquets avant d'installer la version officielle de Docker Engine.

Les paquets non officiels à désinstaller sont :

  • docker.io
  • docker-compose
  • docker-compose-v2
  • docker-doc
  • podman-docker

De plus, Docker Engine dépend de containerd et runc. Docker Engine regroupe ces dépendances comme un seul bundle : containerd.io. Si vous avez installé les paquets containerd ou runc précédemment depuis d'autres dépôts, désinstallez-les avant d'installer Docker Engine.

Exécutez la commande suivante pour désinstaller tous les paquets en conflit :

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

apt-get peut signaler que vous n'avez aucun de ces paquets installé.

Les images, conteneurs, volumes et réseaux stockés dans /var/lib/docker/ ne sont pas automatiquement supprimés quand vous désinstallez Docker. Si vous voulez commencer avec une installation propre, et préférez nettoyer tous les données existantes, consultez la section désinstaller Docker Engine en bas de cette page.

Méthodes d'installation

Vous pouvez installer Docker Engine de différentes manières, selon vos besoins :

  • Docker Engine est fourni avec Docker Desktop pour Linux. C'est la manière la plus facile et la plus rapide de commencer.

  • Vous pouvez configurer les dépôts de Docker et installer depuis ceux-ci, pour faciliter les tâches d'installation et de mise à niveau. C'est l'approche recommandée.

  • Vous pouvez télécharger le paquet DEB et l'installer manuellement et gérer les mises à niveau complètement manuellement. C'est utile dans des situations telles que l'installation de Docker sur des systèmes isolés sans accès à internet.

  • Dans les environnements de test et développement, vous pouvez utiliser des scripts de commodité automatisés pour installer Docker.

Installer en utilisant le dépôt apt

Avant d'installer Docker Engine pour la première fois sur une nouvelle machine hôte, vous devez configurer le dépôt Docker. Ensuite, vous pouvez installer et mettre à jour Docker depuis le dépôt.

Configurer le dépôt de Docker

  1. Mettez à jour l'index des paquets apt et installez les paquets pour permettre à apt d'utiliser un dépôt sur HTTPS :

    $ sudo apt-get update
    $ sudo apt-get install ca-certificates curl
    
  2. Ajoutez la clé GPG officielle de Docker :

    $ sudo install -m 0755 -d /etc/apt/keyrings
    $ sudo curl -fsSL https://download.docker.com/linux/raspbian/gpg -o /etc/apt/keyrings/docker.asc
    $ sudo chmod a+r /etc/apt/keyrings/docker.asc
    
  3. Utilisez la commande suivante pour configurer le dépôt :

    $ echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/raspbian \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    $ sudo apt-get update
    
    Note

    Si vous utilisez un dérivé d'Ubuntu, tel que Linux Mint, vous pourriez avoir besoin d'utiliser UBUNTU_CODENAME au lieu de VERSION_CODENAME.

Installer Docker Engine

  1. Installez Docker Engine, containerd et Docker Compose.

    Pour installer la dernière version, exécutez :

    $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    Pour installer une version spécifique de Docker Engine, commencez par lister les versions disponibles dans le dépôt :

    $ apt-cache madison docker-ce | awk '{ print $3 }'
    
    5:28.2.2-1~raspbian.12.bookworm
    5:28.1.0-1~raspbian.12.bookworm
    <...>
    

    Sélectionnez la version désirée et installez :

    $ VERSION_STRING=5:28.2.2-1~raspbian.12.bookworm
    $ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
    
  2. Vérifiez que l'installation de Docker Engine est réussie en exécutant l'image hello-world :

    $ sudo docker run hello-world
    

    Cette commande télécharge une image de test et l'exécute dans un conteneur. Quand le conteneur s'exécute, il affiche un message de confirmation et se ferme.

Vous avez maintenant installé et démarré Docker Engine avec succès. Le service docker démarre automatiquement sur les systèmes basés sur Debian. Sur RPM-based les systèmes, tel que CentOS, Fedora, RHEL ou SLES, vous devez le démarrer manuellement en utilisant la commande appropriée systemctl ou service. Comme le message l'indique, les utilisateurs non-root ne peuvent pas exécuter les commandes Docker par défaut.

Utilisez Docker comme un utilisateur non-privilégié, ou installez en mode rootless ?

Le daemon Docker se lie à un socket Unix, pas un port TCP. Par défaut ce socket Unix est possédé par l'utilisateur root, et d'autres utilisateurs ne peuvent y accéder qu'avec sudo. Le daemon Docker fonctionne toujours en tant que root.

Si vous ne voulez pas préfixer la commande docker avec sudo, créez un groupe Unix appelé docker et ajoutez-y des utilisateurs. Quand le daemon Docker démarre, il crée un socket Unix accessible aux membres du groupe docker. Sur certaines distributions Linux, le système crée automatiquement ce groupe lors de l'installation du paquet Docker Engine en utilisant un gestionnaire de paquets. Dans ce cas, il n'y a pas besoin pour vous de créer manuellement le groupe.

Avertissement

Le groupe docker accorde des privilèges équivalents à l'utilisateur root. Pour des détails sur la façon dont cela affecte la sécurité de votre système, voir Attaque de surface du daemon Docker.

Note :

Pour exécuter Docker sans privilèges root, voir Exécuter le daemon Docker en tant qu'utilisateur non-root (mode Rootless).

Mettre à niveau Docker Engine

Pour mettre à niveau Docker Engine, suivez les instructions d'installation, en choisissant la nouvelle version que vous voulez installer.

Installer depuis un paquet

Si vous ne pouvez pas utiliser le dépôt de Docker pour installer Docker Engine, vous pouvez télécharger le fichier .deb pour votre version et l'installer manuellement. Vous devez télécharger un nouveau fichier chaque fois que vous voulez mettre à niveau Docker Engine.

  1. Allez à https://download.docker.com/linux/raspbian/dists/.

  2. Sélectionnez votre version de Raspberry Pi OS dans la liste.

  3. Allez à pool/stable/ et sélectionnez l'architecture applicable (armhf).

  4. Téléchargez les fichiers .deb suivants pour Docker Engine, CLI, containerd, et les paquets Docker Compose :

    • containerd.io_<version>_<arch>.deb
    • docker-ce_<version>_<arch>.deb
    • docker-ce-cli_<version>_<arch>.deb
    • docker-buildx-plugin_<version>_<arch>.deb
    • docker-compose-plugin_<version>_<arch>.deb
  5. Installez les fichiers .deb. Mettez à jour les chemins dans l'exemple suivant vers l'endroit où vous avez téléchargé les paquets Docker.

    $ sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
      ./docker-ce_<version>_<arch>.deb \
      ./docker-ce-cli_<version>_<arch>.deb \
      ./docker-buildx-plugin_<version>_<arch>.deb \
      ./docker-compose-plugin_<version>_<arch>.deb
    

    Le daemon Docker démarre automatiquement.

  6. Vérifiez que l'installation de Docker Engine est réussie en exécutant l'image hello-world :

    $ sudo docker run hello-world
    

    Cette commande télécharge une image de test et l'exécute dans un conteneur. Quand le conteneur s'exécute, il affiche un message de confirmation et se ferme.

Vous avez maintenant installé et démarré Docker Engine avec succès.

Tip

Vous recevez des erreurs lorsque vous essayez d'exécuter sans root ?

Le groupe d'utilisateurs docker existe mais ne contient aucun utilisateur, c'est pourquoi vous devez utiliser sudo pour exécuter les commandes Docker. Continuez vers Post-installation Linux pour autoriser les utilisateurs non privilégiés à exécuter les commandes Docker et pour d'autres étapes de configuration facultatives.

Mettre à niveau Docker Engine

Pour mettre à niveau Docker Engine, téléchargez les fichiers de paquet plus récents et répétez la procédure d'installation, en utilisant dpkg -i pointant vers les nouveaux fichiers.

Installer à l'aide du script de commodité

Docker fournit un script de commodité à l'adresse https://get.docker.com/ pour installer Docker dans des environnements de développement de manière non interactive. Le script de commodité n'est pas recommandé pour les environnements de production, mais il est utile pour créer un script de provisionnement adapté à vos besoins. Référez-vous également aux étapes d'installation à l'aide du dépôt pour en savoir plus sur les étapes d'installation à l'aide du dépôt de paquets. Le code source du script est open source, et vous pouvez le trouver dans le dépôt docker-install sur GitHub.

Examinez toujours les scripts téléchargés sur Internet avant de les exécuter localement. Avant l'installation, familiarisez-vous avec les risques et limitations potentiels du script de commodité :

  • Le script nécessite les privilèges root ou sudo pour s'exécuter.
  • Le script tente de détecter votre distribution et votre version de Linux et de configurer votre système de gestion de paquets pour vous.
  • Le script ne vous permet pas de personnaliser la plupart des paramètres d'installation.
  • Le script installe les dépendances et les recommandations sans demander de confirmation. Cela peut installer un grand nombre de paquets, en fonction de la configuration actuelle de votre machine hôte.
  • Par défaut, le script installe la dernière version stable de Docker, containerd et runc. Lorsque vous utilisez ce script pour provisionner une machine, cela peut entraîner des mises à niveau majeures inattendues de Docker. Testez toujours les mises à niveau dans un environnement de test avant de les déployer sur vos systèmes de production.
  • Le script n'est pas conçu pour mettre à niveau une installation Docker existante. Lorsque vous utilisez le script pour mettre à jour une installation existante, les dépendances peuvent ne pas être mises à jour vers la version attendue, ce qui entraîne des versions obsolètes.
Tip

Prévisualisez les étapes du script avant de l'exécuter. Vous pouvez exécuter le script avec l'option --dry-run pour savoir quelles étapes le script exécutera lorsqu'il sera invoqué :

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run

Cet exemple télécharge le script depuis https://get.docker.com/ et l'exécute pour installer la dernière version stable de Docker sur Linux :

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>

Vous avez maintenant installé et démarré avec succès Docker Engine. Le service docker démarre automatiquement sur les distributions basées sur Debian. Sur les distributions RPM, telles que CentOS, Fedora, RHEL ou SLES, vous devez le démarrer manuellement à l'aide de la commande systemctl ou service appropriée. Comme l'indique le message, les utilisateurs non-root ne peuvent pas exécuter les commandes Docker par défaut.

Utiliser Docker en tant qu'utilisateur non privilégié, ou l'installer en mode rootless ?

Le script d'installation nécessite les privilèges root ou sudo pour installer et utiliser Docker. Si vous souhaitez autoriser les utilisateurs non-root à accéder à Docker, consultez les étapes de post-installation pour Linux. Vous pouvez également installer Docker without root privileges, ou configuré pour fonctionner en mode rootless. Pour obtenir des instructions sur l'exécution de Docker en mode rootless, reportez-vous à exécuter le démon Docker en tant qu'utilisateur non-root (mode rootless).

Installer les pré-versions

Docker fournit également un script de commodité à l'adresse https://test.docker.com/ pour installer les pré-versions de Docker sur Linux. Ce script est identique au script de get.docker.com, mais configure votre gestionnaire de paquets pour utiliser le canal de test du dépôt de paquets Docker. Le canal de test inclut à la fois les versions stables et les pré-versions (versions bêta, versions candidates) de Docker. Utilisez ce script pour accéder en avant-première aux nouvelles versions et pour les évaluer dans un environnement de test avant qu'elles ne soient publiées en version stable.

Pour installer la dernière version de Docker sur Linux à partir du canal de test, exécutez :

$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh

Mettre à niveau Docker après avoir utilisé le script de commodité

Si vous avez installé Docker à l'aide du script de commodité, vous devez mettre à niveau Docker directement à l'aide de votre gestionnaire de paquets. Il n'y a aucun avantage à ré-exécuter le script de commodité. Le ré-exécuter peut causer des problèmes s'il tente de réinstaller des dépôts qui existent déjà sur la machine hôte.

Désinstaller Docker Engine

  1. Désinstallez les paquets Docker Engine, CLI, containerd et Docker Compose :

    $ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
    
  2. Les images, conteneurs, volumes ou fichiers de configuration personnalisés sur votre hôte ne sont pas automatiquement supprimés. Pour supprimer toutes les images, conteneurs et volumes :

    $ sudo rm -rf /var/lib/docker
    $ sudo rm -rf /var/lib/containerd
    

Vous devez supprimer manuellement tous les fichiers de configuration modifiés.

Prochaines étapes