Hoppa till innehåll
100% lokalt

docker run till Compose

Konvertera ett docker run-kommando till en docker-compose.yml-tjänst eller tvärtom.

Inmatning
Utmatning

docker run till Compose

Klistra in ett docker run-kommando så omvandlar det här verktyget det som en docker-compose.yml-tjänst, med avbildningen, portarna, volymerna, miljövariablerna, nätverket och omstartspolicyn mappad till deras Compose-motsvarigheter. Vrid riktningsalternativet och det fungerar även åt andra hållet: klistra in en compose-fil och få tillbaka motsvarande docker run-kommando för varje tjänst, användbart när du bara har en compose-fil men behöver återskapa en container manuellt.

Klistra in mer än ett docker run-kommando, ett per rad, och varje blir sin egen tjänst i samma compose-fil — praktiskt för att omvandla ett fåtal ad hoc-containrar till en riktigt multi-service-stack. Erkända flaggor är -p/--publish, -v/--volume, -e/--env, --network, --restart, --memory och --cpus (mappade till ett deploy.resources.limits-block), plus --name, --workdir, --user, --entrypoint, --label och --hostname. Miljövariabler kan stanna inline under environment: eller flyttas till en genererad .env-fil som refereras med env_file:, och compose-filformatet kan skrivas med eller utan version:-nyckel.

Icke alla docker run-flaggor har en Compose-motsvarighet — saker som --rm eller --pull är container-livscyklsflaggor utan per-tjänstinställning i Compose. Verktyget släpper dem aldrig tyst: flaggor som inte stöds listas som kommentarer bredvid den tjänst de tillhör, så du kan se exakt vad som inte konverterades. Om du stänger av "Behåll ursprunglig flaggordning" sorteras varje lista (portar, volymer, miljö) alfabetiskt istället för att behålla ordningen du skrev dem i, vilket kan göra en genererad diff enklare att granska.

Allt körs lokalt i din webbläsare — inget kommando, bildnamn eller miljövariabel skickas någonsin någonstans. Kopiera resultatet, ladda ned det som en .txt-fil eller skicka utdatan tillbaka till inmatningen för att förfina den ytterligare.

FAQ

Kan jag konvertera flera docker run-kommandon på en gång?
Ja. Klistra in ett docker run-kommando per rad (eller använd ett avslutande omvänt snedstreck för att fortsätta ett kommando över flera rader) och varje blir en separat tjänst i den genererade compose-filen.
Vad händer med flaggor som Compose inte kan uttrycka, som --rm?
De tas inte bort tyst. Varje flagga som inte stöds listas som en kommentar bredvid den tjänst den tillhör, så att du kan se exakt vad som inte konverterades.
Konverterar det också docker-compose.yml tillbaka till docker run-kommandon?
Ja. Byt riktningsalternativet till "compose → docker run" och klistra in en compose-fil; verktyget skriver ut ett docker run-kommando per tjänst.
Varför skulle jag lägga miljövariabler i en separat .env-fil istället för i compose-filen?
Det håller hemligheter och miljöspecifika värden utanför versionskontroll när själva compose-filen är committed. Välj "Separat .env-fil" och verktyget flyttar variablerna dit och refererar till dem med env_file:.
Laddas mitt kommando eller min compose-fil upp någonstans?
Nej. Konverteringen körs helt i din webbläsare med JavaScript — ingenting som du klistrar in lämnar någonsin din enhet.