Generator polecenia docker run
Złóż cytowane polecenie z obrazem, portem, wolumenem, env-file i polityką restartu.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator docker run — poprawna i bezpiecznie cytowana komenda
Generator docker run składa polecenie uruchamiające pojedynczy kontener z wybranego obrazu. Ustaw nazwę, mapowanie portu, jeden wolumen, plik zmiennych środowiskowych oraz sposób działania po zatrzymaniu, a otrzymasz wielowierszową komendę przygotowaną dla powłoki POSIX.
Narzędzie nie uruchamia Dockera i nie przesyła obrazu. Wynik jest zwykłym tekstem do sprawdzenia i skopiowania. Każda wartość pochodząca z formularza trafia do osobnego argumentu, a nazwa obrazu pozostaje na końcu, bo Docker interpretuje wszystko po niej jako komendę procesu w kontenerze. Walidacja odrzuca niepełne porty, niebezpieczne montowania i połączenie opcji, których Docker nie akceptuje.
Jak opcje przekładają się na polecenie?
| Ustawienie | Argument | Znaczenie | Bezpieczna wartość domyślna |
|---|---|---|---|
| Tryb w tle | -d | Terminal wraca po starcie | Włączony |
| Nazwa | --name | Czytelny identyfikator kontenera | app |
| Port | --publish | Łączy port hosta i kontenera | Nasłuch tylko na 127.0.0.1 |
| Wolumen | --volume | Udostępnia katalog lub plik | Opcjonalny, najlepiej z :ro |
| Środowisko | --env-file | Wczytuje zmienne z pliku | Bez wartości sekretów w historii powłoki |
| Restart | --restart unless-stopped | Wznawia usługę po awarii lub restarcie hosta | Włączony dla usługi długotrwałej |
| Usuwanie | --rm | Kasuje kontener po zakończeniu | Tylko dla zadań jednorazowych |
Krok po kroku
- Wpisz pełną nazwę obrazu z wersją, na przykład
nginx:1.27-alpine. Unikajlatest, jeśli zależy Ci na powtarzalnym uruchomieniu. - Nadaj kontenerowi nazwę. Pozwoli używać prostego
docker logs web-appzamiast losowego identyfikatora. - Podaj oba porty albo wyczyść oba pola. Generator publikuje port hosta na
127.0.0.1, więc usługa nie staje się przypadkiem publiczna. - Opcjonalnie dodaj montowanie w formacie
źródło:/cel:rooraz ścieżkę do pliku środowiskowego. - Wybierz politykę działania, wygeneruj polecenie, przeczytaj je i dopiero potem uruchom w terminalu.
docker run \ -d \ --restart unless-stopped \ --name 'web-app' \ --publish 127.0.0.1:8080:80 \ --volume './public:/usr/share/nginx/html:ro' \ 'nginx:1.27-alpine'
Shell quoting i odporność na wstrzyknięcie
Spacja, apostrof, średnik albo znak dolara mają specjalne znaczenie dla powłoki. Proste sklejenie -v z danymi formularza może rozbić argument albo wykonać dodatkowe polecenie. Generator otacza dynamiczne wartości apostrofami i zapisuje apostrof wewnątrz wartości w przenośnej formie POSIX. Flagi są stałe i dodawane osobno. Dzięki temu ścieżka ze spacją pozostaje jednym argumentem dla klienta Docker.
Cytowanie zabezpiecza składnię powłoki, ale nie sprawia, że dowolna konfiguracja jest dobrym pomysłem. Narzędzie odrzuca montowanie katalogu głównego hosta i gniazda docker.sock, bo dają kontenerowi dostęp porównywalny z administratorem. Nie oferuje też --privileged. Jeśli aplikacja ma zapisywać tylko jeden katalog, udostępnij właśnie ten katalog zamiast całego systemu plików.
Porty, sieć i dostęp z zewnątrz
Zapis 127.0.0.1:8080:80 oznacza: klient łączy się z portem 8080 hosta, Docker przekazuje ruch do portu 80 kontenera, ale tylko interfejs pętli zwrotnej przyjmuje połączenia. To dobre ustawienie za lokalnym Nginxem lub tunelem SSH. Aby wystawić usługę publicznie, świadomie zmień adres po wygenerowaniu i skonfiguruj firewall oraz TLS.
Sam EXPOSE w Dockerfile nie publikuje portu. Jest dokumentacją obrazu; dostęp tworzy dopiero --publish. Konfigurację warstwy HTTP przygotujesz z generatorem .htaccess, a szersze wdrożenie klastra opisze generator Deployment Kubernetes. Dla kilku współpracujących usług lepszy będzie deklaratywny plik Compose.
Wolumeny i plik środowiskowy
Montowanie bind łączy konkretną ścieżkę hosta z bezwzględną ścieżką w kontenerze. Sufiks :ro blokuje zapis z kontenera i powinien być domyślnym wyborem dla konfiguracji oraz statycznych plików. Uważaj na względne ścieżki: są liczone od katalogu, z którego uruchamiasz klienta Docker. Generator cytuje cały zapis jako jeden argument.
-e HASLO=... trafiają do historii terminala i mogą być widoczne w inspekcji procesu lub kontenera. Formularz celowo przyjmuje ścieżkę do --env-file, a nie listę wartości. Chroń sam plik, nie dodawaj go do repozytorium i w środowisku produkcyjnym rozważ mechanizm sekretów orkiestratora.Wzorce plików, których nie należy wysyłać do obrazu, przygotuje generator .gitignore, a strukturę deklaratywnej konfiguracji możesz sprawdzić walidatorem YAML. Te narzędzia nie zastępują przeglądu praw dostępu i konfiguracji konkretnego hosta.
Restart i kontenery jednorazowe
--restart unless-stopped pasuje do usługi działającej stale. --rm pasuje do migracji, kompilacji lub jednorazowego skryptu, który ma zniknąć po zakończeniu. Docker nie pozwala połączyć polityki restartu z automatycznym usunięciem, dlatego generator zgłasza błąd zamiast tworzyć komendę, która zostanie odrzucona.
Najczęściej zadawane pytania
Dlaczego port jest przypięty do 127.0.0.1?
Bez adresu Docker zwykle publikuje port na wszystkich interfejsach hosta. Ustawienie loopback ogranicza przypadkowe wystawienie panelu lub bazy do Internetu. Publiczny dostęp dodaj świadomie przez reverse proxy i firewall.
Czy generator obsługuje Windows?
Wynik stosuje cytowanie powłoki POSIX dla Linuxa, macOS i WSL. Docker Desktop akceptuje ścieżki z literą dysku jako źródło wolumenu, ale PowerShell ma inne reguły cytowania. W czystym PowerShellu sprawdź i dostosuj zapis argumentów.
Czym różni się --env-file od -e?
-e ustawia pojedynczą zmienną w poleceniu. --env-file wczytuje wiele wpisów z pliku i ogranicza obecność wartości w historii powłoki. Plik nadal musi mieć właściwe uprawnienia i nie powinien trafić do repozytorium.
Czy mogę połączyć --rm z --restart?
Nie. Pierwsza opcja żąda usunięcia kontenera po zakończeniu, a druga zakłada jego ponowne uruchamianie. Generator wykrywa konflikt. Dla zadania jednorazowego wyłącz restart; dla usługi długotrwałej wyłącz automatyczne usuwanie.
Dlaczego generator blokuje docker.sock?
Proces z dostępem do gniazda może tworzyć uprzywilejowane kontenery i montować pliki hosta, co praktycznie daje kontrolę nad maszyną. Jeśli naprawdę potrzebujesz takiej architektury, zaprojektuj osobny, ograniczony pośrednik API zamiast bezpośredniego montowania.