Déploiement de container facilement avec Rancher Desktop
Publié le 15 septembre 2022
Par Alexandre DA SILVA
Introduction
(Pensez à lire la première partie avec l'introduction à Rancher Desktop comme meilleure alternative à Docker Desktop)
Nous avons vu précédemment que nous avions le choix entre containerd et dockerd lors de la configuration mais quelle est la différence entre les deux ? Pour résumer rapidement, ce sont des containers runtime, ils gèrent les images, le cycle de vie complet des conteneurs mais aussi la partie stockage et réseau.
Explication générales des runtimes
Containerd, originellement dans le projet Docker, en a été extrait pour devenir un projet open source réutilisable par d’autres projets tels que Docker lui-même et Kubernetes. Pour lancer vos conteneurs, il est utilisé avec nerdctl, un outil de ligne de commande équivalent à docker.
Dockerd quant à lui, basé sur le projet Moby, intègre l’API et la CLI Docker vous permettant d’utiliser les commandes Docker. Il a été ajouté récemment à Rancher Desktop pour combler les commandes docker non couvertes par nerdctl.
Déploiement d'un container avec Dockerd (Moby)
En choisissant dockerd, lors de la configuration, il n’y a pas de changement au niveau des commandes Docker. Vous pouvez build, pull des images et lancer des conteneurs comme vous le faisiez sur Docker Desktop.
Ici, nous allons lancer un container nginx :
docker run -d -p 8080:80 nginx
En naviguant sur http://localhost:8080, vous devriez tomber sur la page d’accueil de Nginx :
Page Welcome de nginx, après avoir déployé notre container
Déploiement avec Docker Compose
Pas de changement également avec Docker Compose. Essayez de lancer les conteneurs décrits par ce fichier docker-compose.yaml :
version: "3.9"
services:
db:
container_name: db-koul
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: db_koul
ports:
- "3307:3306"
web:
container_name: nginx-koul
image: nginx
Lancer la commande, suivante afin de lancer vos containers :
docker compose up -d
En vérifiant avec la commande docker ps, vous devriez avoir maintenant vos deux conteneurs, en cours d’exécution : mysql et nginx
Et voilà ! Vous avez lancé vos premiers conteneurs avec Rancher Desktop ! Voyons maintenant comment cela se passe avec containerd.
docker ps -a | grep koul
Containerd, c'est quoi ?
Containerd était de base, le seul container runtime proposé par Rancher Desktop avant l’ajout récent de dockerd. Il s’utilise avec nerdctl, un outil de ligne de commande qui reprend la structure des commandes docker. La plupart des commandes docker sont couvertes et il supporte dockerfile et docker compose.
Essayons de faire la même chose que dans la partie précédente avec la commande nerdctl.
Ici, nous allons lancer un container nginx :
nerdctl run -d -p 8000:80 nginx
Vous devriez avoir également la page d’accueil de Nginx en naviguant sur http://localhost:8080
Nerdctl compose
Pour Docker Compose, nerdctl a un équivalent qui est nerdctl-compose.
Créer le fichier docker-compose.yaml :
version: "3.9"
services:
db:
container_name: db-koul
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: db_koul
ports:
- "3307:3306"
web:
container_name: nginx-koul
image: nginx
Lancer ensuite la commande suivante :
nerdctl compose up -d
En vérifiant avec la commande nerdctl ps -a, vous devriez voir vos deux conteneurs lancés !
L’utilisation avec Nerdctl Compose reste néanmoins perfectible selon la configuration du fichier docker-compose.yaml.
Conclusion
En conclusion à notre précédent article et celui-ci, Rancher Desktop est une excellente alternative à Docker Desktop. La mise en route et l’installation ne posent pas de soucis et la communauté est très réactive (n’hésitez pas à passer sur le Slack de Rancher Desktop).
L’interface graphique est un plus et il est possible d’être au plus proche des configurations de production.
En revanche, il est dommage de ne pas avoir une interface des logs de Rancher Desktop directement depuis l’application.
De plus, le système de fichier partagé n’est pas encore aussi rapide que sur Docker Desktop.
Alexandre DA SILVA
Partager l'article