É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.
WarningLe 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.
NotePour 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 :
-
Créez le groupe
docker
.$ sudo groupadd docker
-
Ajoutez votre utilisateur au groupe
docker
.$ sudo usermod -aG docker $USER
-
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
-
Vérifiez que vous pouvez exécuter les commandes
docker
sanssudo
.$ 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 groupedocker
, 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 commandesudo
.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 :
- Configurez le pilote de journalisation
json-file
pour activer la rotation de journal. - Utilisez un pilote de journalisation alternatif tel que le pilote de journalisation "local" qui effectue la rotation de journal par défaut.
- Utilisez un pilote de journalisation qui envoie les journaux vers un agrégateur de journalisation distant.
Prochaines étapes
- Jetez un œil à l' atelier Docker pour apprendre comment construire une image et l'exécuter comme application conteneurisée.