Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator healthcheck Docker

Zbuduj poprawną sondę HTTP, TCP lub polecenie dla Docker Compose i Dockerfile.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Wybierz typ testu i kliknij „Generuj healthcheck”.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator Docker healthcheck dla Compose i Dockerfile

Generator Docker healthcheck tworzy dwa warianty tej samej sondy: sekcję healthcheck do pliku Compose oraz instrukcję HEALTHCHECK do Dockerfile. Wybierz test HTTP, TCP albo własne polecenie, ustaw interwał, limit czasu, liczbę prób i okres startowy, a narzędzie zwróci składnię gotową do wklejenia.

Uruchomiony proces nie zawsze oznacza sprawną usługę. Serwer może działać, lecz nie przyjmować połączeń, czekać na bazę albo zwracać błędy. Sonda wykonuje małą, powtarzalną kontrolę wewnątrz kontenera i na podstawie kodu wyjścia pozwala Dockerowi ustawić stan healthy lub unhealthy. Generator niczego nie uruchamia i nie łączy się z kontenerem — tylko składa tekst konfiguracji.

Jaki rodzaj testu wybrać?

TypCo sprawdzaWymaganie w obrazieZastosowanie
HTTPKod odpowiedzi adresu lokalnegocurlAPI, aplikacja WWW, panel administracyjny
TCPMożliwość otwarcia portuncProsty serwer bez endpointu diagnostycznego
PolecenieKod wyjścia własnej kontroliNarzędzia użyte w poleceniuBaza, kolejka, proces roboczy lub skrypt projektu

HTTP daje zwykle najwięcej informacji, pod warunkiem że endpoint sprawdza istotne zależności i odpowiada szybko. TCP potwierdza tylko, że coś nasłuchuje. Własne polecenie jest najbardziej elastyczne, ale działa przez powłokę kontenera; wklejaj wyłącznie komendy, które rozumiesz. Narzędzie odrzuca znaki nowej linii, aby jedna wartość nie mogła dopisać kolejnej instrukcji Dockerfile.

Parametry czasu i próg awarii

interval określa odstęp między uruchomieniami, timeout maksymalny czas pojedynczej próby, a retries liczbę kolejnych porażek przed zmianą stanu. start_period daje aplikacji czas na rozruch; nie jest opóźnieniem pierwszej próby, lecz okresem, w którym nieudane kontrole nie wypełniają zwykłego licznika porażek. Generator przyjmuje czytelne wartości z jednostkami ms, s, m lub h, na przykład 500ms, 30s i 2m.

Rozsądny punkt startowy dla lekkiego API to interwał 30 sekund, timeout 5 sekund, trzy próby i 10–30 sekund okresu startowego. Nie ustawiaj sondy co sekundę, jeśli wykonuje zapytanie do kilku usług. Sama kontrola może wtedy stać się źródłem obciążenia, a krótkie skoki opóźnienia będą powodowały fałszywe alarmy.

Jak użyć wygenerowanego wyniku

  1. Wybierz HTTP, TCP lub własne polecenie. Dla HTTP podaj port aplikacji i ścieżkę zaczynającą się od /.
  2. Ustaw czasy i liczbę prób. Okres startowy dopasuj do najwolniejszego poprawnego uruchomienia, a nie do średniej.
  3. Skopiuj blok spod nagłówka docker-compose.yml do właściwej usługi, zachowując poziom wcięcia YAML.
  4. Jeśli budujesz własny obraz, skopiuj instrukcję spod nagłówka Dockerfile. Upewnij się, że obraz zawiera curl albo nc.
  5. Zbuduj obraz i sprawdź stan poleceniem docker inspect. Sam generator nie zastępuje testu na rzeczywistym obrazie.
docker inspect --format='{{json .State.Health}}' nazwa-kontenera
docker compose ps

Compose, Dockerfile i poprawna składnia CMD

Compose zapisuje polecenie jako tablicę ["CMD-SHELL", "..."], natomiast Dockerfile wymaga formy HEALTHCHECK ... CMD .... To podobne mechanizmy, ale nie wolno wkleić słowa CMD-SHELL po opcjach instrukcji Dockerfile. Generator rozdziela oba formaty i koduje wartość Compose jak tablicę JSON, dzięki czemu cudzysłowy i ukośniki nie psują YAML.

Jeśli przygotowujesz cały obraz, kolejność warstw, użytkownika procesu i pakiety systemowe dobierzesz z pomocą generatora .gitignore jako listy wzorców dla kontekstu oraz wskazówek w walidatorze YAML dla pliku Compose. Healthcheck jest częścią konfiguracji, nie zamiennikiem monitoringu i metryk.

Bezpieczeństwo i zachowanie w razie awarii

Endpoint diagnostyczny nie powinien ujawniać wersji, konfiguracji, zapytań ani sekretów. Zwykłe 200 lub 503 wystarczy. Test działa wewnątrz kontenera, dlatego generator używa adresu 127.0.0.1, a ścieżkę cytuje dla powłoki. Kod użytkownika nie jest wykonywany na webp.pl.

Stan unhealthy nie oznacza automatycznego restartu samodzielnego kontenera przez Docker Engine. Polityka restartu reaguje na zakończenie procesu, nie na sam wynik sondy. Compose może uzależnić start innej usługi od condition: service_healthy, a decyzję o naprawie powinien podejmować orkiestrator lub monitoring.

Nie testuj wyłącznie zewnętrznej strony, jeśli kontener ma działać także podczas krótkiego problemu z DNS. Nie umieszczaj w poleceniu tokenów ani haseł — są widoczne w konfiguracji obrazu. Uprawnienia do plików używanych przez własny skrypt sprawdzisz kalkulatorem chmod, a reguły dostępu serwera możesz przygotować przez generator .htaccess.

Najczęściej zadawane pytania

Czy Docker automatycznie restartuje kontener unhealthy?

Nie w zwykłym trybie Docker Engine. Stan healthchecka jest informacją. Polityka --restart reaguje na wyjście głównego procesu; automatyczną reakcję na unhealthy zapewnia dopiero odpowiednio skonfigurowany orkiestrator albo zewnętrzny monitoring.

Dlaczego curl lub nc nie działa w kontenerze?

Minimalne obrazy często nie zawierają tych programów. Dodaj właściwy pakiet na etapie budowania albo zastosuj kontrolę opartą na interpreterze już obecnym w obrazie. Sprawdź narzędzie interaktywnie przed włączeniem sondy.

Czy endpoint health powinien sprawdzać bazę danych?

Zależy od celu. Kontrola gotowości może sprawdzać krytyczną bazę, ale sonda żywotności nie powinna ubijać poprawnego procesu z powodu krótkiej awarii zależności. W Dockerze masz jeden healthcheck, więc wybierz tani kompromis i osobno monitoruj zależności.

Czy konfiguracja z Dockerfile działa w Kubernetes?

Kubernetes definiuje własne sondy liveness, readiness i startup, dlatego nie należy zakładać, że instrukcja Dockerfile zastąpi ich konfigurację. Te same endpointy i polecenia można jednak wykorzystać przy tworzeniu manifestów klastra.

Jak dobrać interval, timeout i retries?

Timeout powinien być dłuższy niż typowa odpowiedź, ale krótszy od interwału. Trzy próby co 20–30 sekund są rozsądnym początkiem dla większości aplikacji. Potem dopasuj wartości na podstawie pomiarów startu i opóźnień.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!