Tutoriels

Convertir une commande Docker Run en Docker Compose

Publié le 24 juillet 2022 Temps de lecture : 3 min.

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 !

avatar-ag

Article rédigé par Antoine Guilbert

Blogueur passionné par les nouvelles technologies et la domotique.
J'adore tester des produits, voyager à travers le monde et faire des photos.

En savoir plus