Convertir une commande Docker Run en Docker Compose
Si vous êtes un adepte de Docker, vous devez faire comme moi en récupérant des commandes sur le web pour générer vos containers rapidement. Cependant, pas toujours simple de s’y retrouver avec un Docker Run, surtout quand il y a plusieurs paramètres. Aujourd’hui, je vous présente un outil pour les convertir en Docker Compose !
Docker Run, Docker Compose : quelle différence ?
Docker Run : c’est la commande de base pour créer un container et le démarrer directement avec plusieurs paramètres. Elle est simple à mettre en œuvre, mais il convient de bien la noter, surtout si vous êtes amenés à retravailler la configuration de votre container et ainsi le modifier / redémarrer.
Voici la commande pour lancer un container Transmission. On a vu plus lisible n’est-ce pas ? 😜
docker run -d \ --name=transmission \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/London \ -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \ -p 9091:9091 \ -p 51413:51413 \ -p 51413:51413/udp \ -v /path/to/data:/config \ -v /path/to/downloads:/downloads \ -v /path/to/watch/folder:/watch \ --restart unless-stopped \ lscr.io/linuxserver/transmission:latest
Docker Compose : c’est un composant supplémentaire à Docker qui permet de décrire dans un fichier au format YAML une suite d’instruction à exécuter pour créer un ou plusieurs containers, des volumes, des services, etc.
Si vous utilisez Portainer, c’est exactement ce que l’on retrouve dans l’onglet Stacks où l’on vient exécuter un Docker compose avec la possibilité de charger en plus un fichier de configuration .env
Ainsi notre commande tout à l’heure pour créer Transmission devient donc ceci (pour les connaisseurs, cela ressemble aux fichiers de configuration Home Assistant qui utilisent aussi le YAML).
version: '3.3'
services:
linuxserver:
container_name: transmission
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- TRANSMISSION_WEB_HOME=/combustion-release/
ports:
- '9091:9091'
- '51413:51413'
- '51413:51413/udp'
volumes:
- '/path/to/data:/config'
- '/path/to/downloads:/downloads'
- '/path/to/watch/folder:/watch'
restart: unless-stopped
image: 'lscr.io/linuxserver/transmission:latest'
Composerize : la solution miracle !
Maintenant, on arrive à notre outil très pratique qui va permettre de passer de l’un à l’autre en quelques secondes. Il s’agit de Composerize, développé par Mark Larah. Il vous suffit de coller votre commande Docker Run pour l’avoir ensuite au format Docker Compose.
Je vous conseille de mettre ce lien en favoris, il vous sera certainement utile lors de vos bidouillages sur Docker. Si le sujet vous intéresse, n’hésitez pas à lire mes autres articles ci-dessous !