Mode d’emploi
- Collez des commandes docker run à gauche. Les commandes multi-lignes avec barres obliques inverses en fin de ligne fonctionnent ; séparez plusieurs commandes par des retours à la ligne, des points-virgules ou &&.
- Le fichier Compose apparaît à droite. Chaque commande devient un service nommé d'après --name, ou d'après l'image en son absence.
- Vérifiez la note jaune pour ce qui n'a pas été converti, puis copiez ou téléchargez compose.yaml et exécutez docker compose up -d.
Explication des options
- Options prises en charge
- -p, -v, --mount, -e, --env-file, --name, --restart, --network, -w, -u, -h, --entrypoint, -l, --add-host, --dns, --cap-add/drop, --device, -m, --cpus, --shm-size, --ulimit, --log-driver/--log-opt, --health-*, -i, -t, --privileged, --init, --read-only et plus encore.
- Volumes et réseaux nommés
- Les volumes nommés (comme pgdata:/data) sont déclarés sous la clé volumes de premier niveau. Les réseaux personnalisés sont déclarés avec external true, ce qui suppose un réseau déjà existant. Les réseaux host et none deviennent network_mode.
- Ports
- Les correspondances de ports sont toujours mises entre guillemets. YAML 1.1 lit des valeurs comme 22:22 comme des nombres en base 60, et la documentation Docker recommande d'écrire les ports sous forme de chaînes.
- Options ignorées
- -d et --rm n'ont pas d'équivalent Compose et sont supprimées. Les options non prises en charge comme --gpus sont listées dans la note.
Exemple
docker run -d --name web --restart unless-stopped -p 8080:80 \
-v ./html:/usr/share/nginx/html:ro -e TZ=Asia/Shanghai --memory 512m nginx:1.27
devient :
services:
web:
image: nginx:1.27
container_name: web
restart: unless-stopped
mem_limit: 512m
ports:
- "8080:80"
environment:
- TZ=Asia/Shanghai
volumes:
- ./html:/usr/share/nginx/html:ro
Questions fréquentes
Le fichier a-t-il besoin d'une ligne de version ?
Non. Docker Compose actuel (v2) n'utilise plus la clé version de premier niveau ; si elle est présente, elle est ignorée avec un avertissement.
Les mots de passe dans mes variables d'environnement sont-ils envoyés quelque part ?
Non. L'analyse et la conversion s'exécutent dans votre navigateur et rien n'est envoyé à un serveur.
Les arguments entre guillemets sont-ils gérés ?
Oui. Les guillemets simples, les guillemets doubles et les échappements par barre oblique inverse suivent les règles du shell, donc -e "MSG=hello world" conserve la valeur complète.
Confidentialité
Cet outil fonctionne entièrement dans votre navigateur. Vos fichiers et vos textes sont traités sur votre appareil et ne sont jamais envoyés à nos serveurs.