Przejdź do treści
100% lokalnie

docker run to Compose

Konwertuj polecenie docker run na usługę docker-compose.yml lub odwrotnie.

Wejście
Wynik

docker run to Compose

Wklej polecenie docker run, a narzędzie przepisze je jako usługę docker-compose.yml z mapowaniem obrazu, portów, wolumenów, zmiennych środowiska, sieci i zasady ponownego uruchomienia na ich odpowiedniki w compose. Przełącz opcję kierunek i działa to również odwrotnie: wklej plik compose i otrzymaj równoważne polecenie docker run dla każdej usługi, co jest przydatne, gdy masz tylko plik compose, ale musisz ręcznie odtworzyć jeden kontener.

Wklej więcej niż jedno polecenie docker run, jedno na wiersz, a każde stanie się własną usługą w tym samym pliku compose — wygodnie do zamiany kilku ad-hoc kontenerów na właściwy stos multi-usługowy. Obsługiwane flagi to -p/--publish, -v/--volume, -e/--env, --network, --restart, --memory i --cpus (mapowane na blok deploy.resources.limits), plus --name, --workdir, --user, --entrypoint, --label i --hostname. Zmienne środowiska mogą pozostać wbudowane w environment: lub być przeniesione do wygenerowanego pliku .env, do którego odwołuje się env_file:, a format pliku compose można napisać z kluczem version: lub bez niego.

Nie każda flaga docker run ma odpowiednik w compose — rzeczy takie jak --rm lub --pull to flagi cyklu życia kontenera bez odpowiadającego ustawienia usługi w compose. Narzędzie nigdy ich po cichu nie pomija: nieobsługiwane flagi są wymienione jako komentarze obok usługi, do której należą, więc dokładnie wiesz, co się nie przeniosło. Wyłączenie opcji 'zachowaj pierwotną kolejność flag' posortuje każdą listę (porty, wolumeny, zmienne) alfabetycznie zamiast zachowywania kolejności, w jakiej je wpisałeś, co ułatwi przejrzenie wygenerowanego diffu.

Wszystko działa lokalnie w Twojej przeglądarce — żadne polecenie, nazwa obrazu ani zmienna środowiska nigdy się nigdzie nie wysyła. Skopiuj wynik, pobierz go jako plik .txt lub wyślij wynik z powrotem do wejścia, aby nadal go ulepszać.

Częste pytania

Czy mogę konwertować wiele poleceń docker run naraz?
Tak. Wklej jedno polecenie docker run na wiersz (lub użyj backslasha, aby kontynuować polecenie na następnym wierszu) i każde stanie się osobną usługą w wygenerowanym pliku compose.
Co się stanie z flagami, które compose nie może wyrazić, takie jak --rm?
Nie są po cichu opuszczane. Każda nieobsługiwana flaga jest wymieniona jako komentarz obok usługi, do której należy, więc dokładnie wiesz, co się nie przeniosło.
Czy konwertuje również docker-compose.yml z powrotem na polecenia docker run?
Tak. Przełącz opcję kierunek na 'compose → docker run' i wklej plik compose; narzędzie wydrukuje jedno polecenie docker run dla każdej usługi.
Dlaczego miałbym umieścić zmienne środowiska w osobnym pliku .env zamiast w pliku compose?
Trzyma to tajne dane i wartości specyficzne dla środowiska poza kontrolą wersji, gdy sam plik compose jest zatwierdzany. Wybierz 'Oddzielony plik .env' i narzędzie przeniesie zmienne tam i odwołuje się do nich za pomocą env_file:.
Czy moje polecenie lub plik compose są wysyłane gdziekolwiek?
Nie. Konwersja działa całkowicie w Twojej przeglądarce przy użyciu JavaScriptu — nic, co wklejasz, nigdy nie opuści Twojego urządzenia.