Docker est un outil utilisé pour exécuter des logiciels dans un conteneur. C'est un excellent moyen pour les développeurs et les utilisateurs de se soucier moins de la compatibilité avec un système d'exploitation et des dépendances, car le logiciel contenu doit fonctionner de manière identique sur n'importe quel système.
Docker est disponible au téléchargement et à l'installation sur Fedora ainsi que sur la plupart des autres distributions de Linux. Cependant, l'installer sur Fedora peut être un peu délicat car Red Hat n'offre pas de support natif pour Docker sur ses distributions. Au lieu de cela, Red Hat pousse la prise en charge de Podman, une alternative à Docker. Cela rend Docker un peu plus difficile à installer, mais c'est toujours possible sur Fedora.
Dans ce guide, nous allons vous montrer comment installer Docker sur Fedora et commencer à installer un logiciel conteneurisé. Une fois Docker installé, vous pouvez l'utiliser pour installer des packages logiciels de la même manière que vous utiliseriez le gestionnaire de packages de votre distribution pour télécharger une application. La différence avec l'utilisation de Docker est que tout est plus automatisé, la compatibilité et les dépendances n'étant plus des problèmes potentiels.
Dans ce didacticiel, vous apprendrez :
- Comment installer Docker
- Comment démarrer Docker et le faire fonctionner automatiquement au démarrage
- Comment exécuter Docker sans root
- Comment rechercher une image Docker
- Comment installer une image Docker
- Comment exécuter une image Docker
- Comment surveiller Docker avec différentes commandes
- Comment démarrer automatiquement un conteneur Docker

Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | Fedora Linux |
Logiciel | Docker |
Autre | Accès privilégié à votre système Linux en tant que root ou via le sudo commande. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Installer Docker sur Fedora
Red Hat a mis quelques obstacles sur notre chemin, nous ne pouvons donc pas simplement installer Docker avec une simple dnf install
commande. Nous devrons d'abord ajouter le référentiel Docker à notre système, puis désinstaller quelques packages en conflit qui sont installés par défaut sur Fedora.
- Commencez par installer le
dnf-plugins-core
package, au cas où il ne se trouve pas déjà sur votre système. Cela vous permettra de gérer vos référentiels dnf et d'y ajouter le référentiel Docker officiel.$ sudo dnf -y install dnf-plugins-core
- Ensuite, ajoutez le référentiel Docker à votre système avec la commande suivante.
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
- Avant de commencer à installer Docker, nous devons supprimer le
podman
etbuildah
paquets de notre système, car ils entrent en conflit avec Docker et l'empêchent d'être installé.$ sudo dnf remove podman buildah
- Enfin, nous pouvons installer les trois packages Docker dont nous aurons besoin en exécutant la commande suivante.
$ sudo dnf install docker-ce docker-ce-cli containerd.io
- Une fois l'installation terminée, démarrez le service Docker et, éventuellement, activez-le à chaque redémarrage du système :
$ sudo systemctl start docker.service $ sudo systemctl start containerd.service $ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
- Vous pouvez vérifier que Docker est installé et recueillir des informations sur la version actuelle en saisissant cette commande :
$ sudo docker version
- Il existe également un moyen simple et rapide de voir le nombre de conteneurs Docker en cours d'exécution et de voir certaines des options configurées de Docker en saisissant :
$ sudo docker info


Exécuter Docker sans root
Par défaut, vous devrez utiliser sudo
ou connectez-vous à root chaque fois que vous souhaitez exécuter une commande Docker. Cette étape suivante est facultative, mais si vous préférez pouvoir exécuter Docker en tant qu'utilisateur actuel, ajoutez votre compte au groupe Docker avec cette commande :
$ sudo usermod -aG docker $USER
Vous devrez redémarrer votre système pour que ces modifications prennent effet.
$ reboot
Rechercher une image Docker
Vous êtes maintenant prêt à installer des images avec Docker. Si vous connaissez déjà le nom d'une image que vous souhaitez installer, vous pouvez passer à la section suivante. Si vous devez rechercher dans Docker le logiciel souhaité, vous pouvez utiliser la syntaxe de commande suivante :
$ docker search [name]
Par exemple, essayons de rechercher nginx, qui est un logiciel de serveur Web populaire.
$ docker search nginx

Comme vous pouvez le voir, il existe une image officielle pour nginx (indiquée par le OFFICIAL
colonne) simplement appelé nginx
. Il existe également d'autres versions disponibles, et vous devrez lire leurs descriptions pour voir ce qu'elles font différemment de l'image officielle.
Installer une image Docker
Une fois que vous savez quelle image vous souhaitez installer, vous pouvez utiliser la commande suivante pour demander à Docker de télécharger le logiciel souhaité. Juste à titre d'exemple, nous allons installer le hello-world
package qui peut être utilisé pour s'assurer que Docker est capable de télécharger et d'exécuter des images avec succès.
$ docker pull hello-world

La sortie dans la capture d'écran ci-dessus indique que Docker a pu trouver et télécharger l'image que nous avons spécifiée.
Exécuter une image Docker
Maintenant que l'image est téléchargée, exécutez-la avec la commande suivante :
$ docker run hello-world

Docker de surveillance
Docker nous offre de nombreuses options pour voir ce qui se passe avec nos images, combien de ressources système elles utilisent, etc. Les commandes suivantes sont utiles pour surveiller Docker et nos images installées.
Pour voir quels conteneurs Docker sont en cours d'exécution et vérifier leur état actuel, tapez :
$ docker container ls

Pour voir une liste de toutes les images Docker installées, tapez :
$ docker images

Pour voir l'utilisation actuelle du CPU, de la RAM et du réseau des images en cours d'exécution, tapez :
$ docker stats

Pour voir la configuration réseau de Docker, tapez :
$ docker network ls

Démarrer automatiquement un conteneur
Nous avons déjà vu comment s'assurer que le service Docker démarre automatiquement au démarrage de votre ordinateur. Au cas où vous auriez sauté cette étape, voici à nouveau la commande.
$ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service
Nous pouvons également contrôler les services Docker pour les faire démarrer automatiquement. Voici quelques commandes pour contrôler leur comportement. Nous utiliserons nginx
comme notre exemple de logiciel dans ces commandes.
- Pour démarrer un nouveau conteneur et le configurer pour qu'il redémarre automatiquement à moins qu'il n'ait été arrêté ou que Docker n'ait redémarré, exécutez la commande suivante.
$ docker run -d --restart unless-stopped nginx
- Si le conteneur est déjà en cours d'exécution, utilisez cette commande pour vous assurer qu'il redémarre automatiquement.
$ docker update --restart unless-stopped nginx
- Nous pouvons également nous assurer que tous les conteneurs sont redémarrés automatiquement, à moins qu'ils ne soient explicitement arrêtés, en utilisant la commande suivante.
$ docker update --restart unless-stopped $(docker ps -q)
- Pour toujours redémarrer un conteneur, même s'il a été arrêté manuellement, utilisez le
always
option au lieu deunless stopped
.$ docker update --restart always nginx
- Vous pouvez également utiliser le
on-failure
option pour autoriser uniquement les conteneurs à redémarrer automatiquement s'ils ont rencontré une erreur.$ docker update --restart on-failure nginx
- Enfin, pour reconfigurer votre conteneur au paramètre par défaut, ce qui signifie qu'il n'y a pas de redémarrage automatique, utilisez le
no
option.$ docker update --restart no nginx
Dépannage
Si vous rencontrez des problèmes avec Docker, y compris des erreurs d'autorisation ou "Impossible de se connecter au démon Docker", les développeurs Docker ont un script pratique que vous pouvez exécuter pour vérifier un tas de problèmes courants. Voici comment le télécharger et l'exécuter.
$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh > check-config.sh $ bash ./check-config.sh

Réflexions finales
Bien que RHEL, et par extension Fedora, ne supporte pas Docker nativement, il est toujours possible de le faire fonctionner, comme nous l'avons vu dans ce guide. Les outils natifs RHEL comme podman et buildah sont compatibles avec Docker mais n'ont pas besoin d'une architecture serveur/client pour fonctionner. L'utilisation d'outils natifs, dans la mesure du possible, est toujours la méthode recommandée, mais pour une raison ou une autre, vous souhaiterez peut-être toujours installer le Docker d'origine.