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

Étapes post-installation Linux pour Docker Engine

Ces procédures post-installation optionnelles décrivent comment configurer votre machine hôte Linux pour mieux fonctionner avec Docker.

Gérer Docker en tant qu'utilisateur non-root

Le daemon Docker se lie à un socket Unix, pas à un port TCP. Par défaut, c'est l'utilisateur root qui possède le socket Unix, et les autres utilisateurs ne peuvent y accéder qu'en utilisant sudo. Le daemon Docker s'exécute toujours en tant qu'utilisateur 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 par les membres du groupe docker. Sur certaines distributions Linux, le système crée automatiquement ce groupe lors de l'installation de Docker Engine en utilisant un gestionnaire de paquets. Dans ce cas, il n'est pas nécessaire de créer manuellement le groupe.

Warning

Le groupe docker accorde des privilèges de niveau root à l'utilisateur. Pour plus de détails sur l'impact de ceci sur la sécurité de votre système, voir Surface d'attaque 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).

Pour créer le groupe docker et ajouter votre utilisateur :

  1. Créez le groupe docker.

    $ sudo groupadd docker
    
  2. Ajoutez votre utilisateur au groupe docker.

    $ sudo usermod -aG docker $USER
    
  3. Déconnectez-vous et reconnectez-vous pour que votre appartenance au groupe soit réévaluée.

    Si vous exécutez Linux dans une machine virtuelle, il peut être nécessaire de redémarrer la machine virtuelle pour que les changements prennent effet.

    Vous pouvez également exécuter la commande suivante pour activer les changements des groupes :

    $ newgrp docker
    
  4. Vérifiez que vous pouvez exécuter les commandes docker sans 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 et se ferme.

    Si vous avez initialement exécuté les commandes CLI Docker en utilisant sudo avant d'ajouter votre utilisateur au groupe docker, vous pourriez voir l'erreur suivante :

    WARNING: Error loading config file: /home/user/.docker/config.json -
    stat /home/user/.docker/config.json: permission denied

    Cette erreur indique que les paramètres de permission pour le répertoire ~/.docker/ sont incorrects, en raison de l'utilisation antérieure de la commande sudo.

    Pour corriger ce problème, soit supprimez le répertoire ~/.docker/ (il est recréé automatiquement, mais tous les paramètres personnalisés sont perdus), soit changez sa propriété et ses permissions en utilisant les commandes suivantes :

    $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
    $ sudo chmod g+rwx "$HOME/.docker" -R
    

Configurer Docker pour démarrer au boot avec systemd

Beaucoup de distributions Linux modernes utilisent systemd pour gérer quels services démarrent quand le système démarre. Sur Debian et Ubuntu, le service Docker démarre au boot par défaut. Pour démarrer automatiquement Docker et containerd au boot pour d'autres distributions Linux utilisant systemd, exécutez les commandes suivantes :

$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service

Pour arrêter ce comportement, utilisez disable à la place.

$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service

Vous pouvez utiliser les fichiers d'unité systemd pour configurer le service Docker au démarrage, par exemple pour ajouter un proxy HTTP, définir un répertoire ou une partition différente pour les fichiers runtime Docker, ou d'autres personnalisations. Pour un exemple, voir Configurer le daemon pour utiliser un proxy.

Configurer le pilote de journalisation par défaut

Docker fournit des pilotes de journalisation pour collecter et visualiser les données de journal de tous les conteneurs s'exécutant sur un hôte. Le pilote de journalisation par défaut, json-file, écrit les données de journal dans des fichiers formatés JSON sur le système de fichiers hôte. Au fil du temps, ces fichiers journaux augmentent en taille, menant à un épuisement potentiel des ressources disque.

Pour éviter les problèmes de surutilisation du disque pour les données de journal, considérez une des options suivantes :

Prochaines étapes

  • Jetez un œil à l' atelier Docker pour apprendre comment construire une image et l'exécuter comme application conteneurisée.