RHEL 9 : Installer docker, docker-compose et portainer
Voici comment installer docker sur RHEL 9 (Red Hat Enterprise Linux 9) jusqu’à l’installation de portainer en passant par docker-compose !
J’effectue ce tutoriel sur RHEL 9, le tutoriel est identique pour toutes les dérivées de RHEL 9 (CentOS Stream, Fedora, Oracle Linux, Rocky Linux …)
Prérequis
Avant d’installer quoi que ce soit, on met bien évidemment à jour son système !
dnf update -y
Installer Docker sur RHEL 9
On ajoute le dépôt officiel de docker à notre système
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
On supprime podman et buildah qui sont préinstallés à l’installation de l’OS, qui peuvent provoquer des conflits avec docker. Ces paquets ne sont pas nécessairement installés, par exemple en installation minimale, ce n’est pas le cas.
dnf remove podman buildah
Ensuite, on peut installer docker via ces trois paquets :
dnf install docker-ce docker-ce-cli containerd.io
Une fois installer, on démarre le service docker et on peut optionnellement activer le service au redémarrage du système :
systemctl start docker.service
systemctl enable docker.service
Pour savoir si docker est correctement installé, on vérifie la version.
docker version
On peut également vérifier le statut du daemon docker :
systemctl status docker
Executer les commandes docker en tant qu’utilisateur
Par défaut les commandes docker son exécutable uniquement en tant que root ou avec un utilisateur étant dans le groupe « docker ». Cette partie est optionnelle, mais l’on peut créer un utilisateur et l’intégrer au groupe docker afin d’exécuter nos conteneurs via cet utilisateur.
Remplacer $USER par le nom d’utilisateur que vous voulez créer.
adduser $USER
Ensuite je définis un mot de passe pour l’utilisateur crée
passwd $USER
Enfin j’ajoute l’utilisateur au groupe « docker » et « wheel » afin d’avoir accès la commande sudo (permet d’exécuter des commandes en tant qu’administrateur)
sudo usermod -aG docker $USER
sudo usermod -aG wheel $USER
L’utilisateur est créer, on l’utilisera pour démarrer portainer.
Installer Docker-compose
J’installe quelques prérequis pour l’installer de docker-compose
dnf -y install curl wget -y
Tout comme docker, j’installe le dépôt de docker-compose qui nous permet de télécharger les binaires :
curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi -
J’attribue les droits d’exécution sur les binaires de docker compose, puis le déplace le tout dans /usr/local/bin/docker-compose :
chmod +x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
Enfin, je peux vérifier que docker-compose est correctement installer :
docker-compose version
sortie de commande :
Docker Compose version v2.6.1
Installer l’interface web portainer
Pour terminer ce tuto, on va démarrer notre premier conteneur : portainer.
Portainer est très connue, car il permet à docker de bénéficier d’une interface web, cela permet de grandement améliorer la simplicité d’utilisation de docker.
On peut directement se connecter avec l’utilisateur précédemment créé. On peut également rester en compte root si vous n’avez pas suivi cette partie du tutoriel.
su - $USER
Je créer un dossier qui contiendra les données de mes conteneurs :
sudo mkdir /srv/docker
Ensuite je créer et je me déplace dans le dossier portainer
sudo mkdir /srv/docker/portainer
cd /srv/docker/portainer
Avec mon éditeur de texte, je créer un fichier docker-compose
sudo vi docker-compose.yml
Il ne reste qu’à coller cette stack de portainer :
version: '3.3'
services:
portainer-ce:
container_name: portainer
ports:
- '9443:9443'
- '9000:9000'
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- 'portainer_data:/data'
restart: always
image: portainer/portainer-ce:latest
volumes:
portainer_data:
Enfin, créer et démarrer la stack docker-compose avec cette commande :
docker-compose up -d
Il vous reste qu’à initialiser portainer sur votre navigateur web. Vous pouvez vous connecter à l’adresse ip de votre serveur suivi du port 9000 : http://0.0.0.0:9000 ou en https : https://0.0.0.0:9443
Vous savez maintenant comment installer docker sur RHEL 9. Retrouvez aussi découvrir la procédure pour Debian et ses dérivées
Bonjour,
Merci pour ce super tuto.
Je rencontre un souci au lancement de portainer et c’est lié au DNS.
Ci-dessous le message d’erreur :
✘ portainer-ce Error Get « https://registry-1.docker.io/v2/ »: dial tcp: lookup registry-1.docker.io on xx.xx.x… 0.0s
Error response from daemon: Get « https://registry-1.docker.io/v2/ »: dial tcp: lookup registry-1.docker.io on xx.xx.x.x:53: no such host
Je suis derrière un poxy d’entreprise qui nécessite une authentification.
Après mainte recherche je n’arrive toujours pas à trouver la solution.
Merci bien pour un petit coup de main 🙂
Eric