Docker

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

Jérémy Taunay

🪪 Be smarter everyday | 🏮 Less is more | 🐧Tech systèmes et réseaux | 🖥️ Homelaber