Co robi Docker Entrypoint?

Co robi Docker Entrypoint?
DockerFiles są kluczową częścią pracy z kontenerami; Pozwalają nam tworzyć obrazy z pliku dokera i dostosowywać je do naszych potrzeb użytkowania, ponieważ DockerFiles działają za pomocą dyrektyw i parametrów dla konfiguracji.

Jedną z powszechnych dyrektyw w pliku dokerowym jest dyrektywa. Niniejsza dyrektywa określa wykonywalność, która działa podczas tworzenia kontenerów z obrazu DockerFile.

W tym przewodniku dotyczy działania dyrektywy w Docker i jak korzystać z niej w DockerFiles.

Podstawowe użycie

Dyrektywa wejścia w pliku dokera przybiera dwie formy, formularz Exec I formularz powłoki. Posiadanie dyrektywy z punktu wejściowego w pliku dokera zapobiega automatycznym uruchomieniu kontenera.

Ogólna składnia dla dyrektywy EntryPoint to:

Formularz Exec:

EntentPoint [exec, option1, opcja2… opcjaN]

EXEC reprezentuje wykonywanie do uruchomienia; Opcje to parametry do uruchomienia do wykonywalnego.

Inną formą dyrektywy EnterPoint jest forma powłoki. Formularz powłoki działa jako podkomenda z /bin /sh -c -c [polecenie]. Ogólna składnia dla tego formularza jest:

Opcja polecenia EnterPoint 1, opcja 2… opcja

Podobnie polecenie jest wykonywalne po powłoce, podczas gdy opcje reprezentują parametry do przekazania do polecenia.

Jak działa punkt EntryPoint

Krótko mówiąc, dyrektywa EntryPoint w pliku Docker. Niestety dwie formy dyrektywy w punkcie wejściowym zwykle zachowują się inaczej:

Forma powłoki dyrektywy EntryPoint nie obsługuje argumentów poleceń podczas uruchamiania kontenera. Ponadto, w przeciwieństwie do formularza EXEC, który działa wykonywalny w tle, formularz powłoki działa jako podwodność /bin /sH -c uruchamiając proces o innej wartości PID niż proces kontenera.

Z drugiej strony formularz Exec obsługuje argumenty podczas tworzenia kontenerów. Oznacza to, że polecenie jest uruchamiane po wykonywalnym ustawieniu w punkcie wejściowym. Tak więc, na przykład, jeśli dodasz opcję do polecenia Docker Run, działa ona w tle po ustawieniu wykonywalnym w punkcie EnterPoint. Ponadto Docker umożliwia zastąpienie wartości punktu wejścia za pomocą opcji -Entrypoint podczas tworzenia kontenerów.

Przykład 1: Formularz Wykonawczy

Zilustrujmy, jak działa formularz Exec. W tym przykładzie używamy obrazu Nginx jako przypadku testowego.

Przykładowy plik dokujący zawiera wpisy jako:

Od Debian: najnowszy
Uruchom aktualizację apt-get && \
apt -get install -y nginx
Etykieta utrzymująca = "Linuxhint"
Etykieta wersja = "1.0 "
Opis etykiety = "Prosty obraz działający nginx w debaina 10"
Expose 80/TCP
PUNCEPINT [„nginx”, „-g”, „demon off;” ]

Zbudujmy obraz z pliku Docker jako:

Docker Build - -Pull - -Rm -f „DockerFile -T Nginx: Custom”."

Za pomocą obrazu utwórzmy pojemnik i uruchom powłokę do kontenera.

Docker Exec -it F3538752d6c3 Bash

Wewnątrz powłoki kontenerowej wykonajmy podstawowe polecenia i zainstaluj kilka pakietów.

root@f3538752d6c3:/# sudo apt-get aktualizacja && apt-get instaluj hTOP

Jeśli uruchomisz HTOP wewnątrz pojemnika, otrzymasz wyjście podobne do tego pokazanego poniżej:

Jeśli zignorujesz wszystkie procesy pracownicze Nginx i HTOP, zauważysz, że główny demon Nginx działa jako PID 1.

Przykład 2: formularz powłoki

Jeśli zmienisz plik Docker, aby spojrzeć jak pokazano we wpisach poniżej:

Od Debian: najnowszy
Uruchom aktualizację apt-get && \
apt -get install -y nginx
Etykieta utrzymująca = "Linuxhint"
Etykieta wersja = "1.0 "
Opis etykiety = "Prosty obraz działający nginx w debaina 10"
Expose 80/TCP
Punkt wejścia „nginx”-g „„ demon off; ”

Zbuduj obraz i utwórz pojemnik.

Docker Build - -Pull - -Rm -f "DockerFile.DockerFile „-t nginx: niestandard”."
Docker Run -d-Nazwa nginx-exec-form nginx:

Wewnątrz kontenera, jeśli uruchomimy polecenie HTOP, widzimy, że proces pracownika Nginx działa pod /bin /sh -c jako:

Możesz także uzyskać podobne dane wyjściowe, badając kontener za pomocą polecenia Docker Inspect jako:

Szybkie podsumowanie

Dobrze jest nie mylić punktu wejścia Dockera i dyrektyw Docker CMD. Chociaż obie dyrektywy definiują polecenia Docker wykonują podczas kontenera wykonania:

Upewnij się, aby używać dyrektywy DockerFile EntryPoint podczas uruchamiania kontenera jako wykonywalnego.

Użyj CMD, aby zdefiniować domyślne argumenty dla punktu EntryPul lub do uruchamiania poleceń ad-hoc w pojemniku.

NOTATKA: Argumenty CMD zostaną zastąpione podczas uruchamiania kontenera z innymi argumentami.

Jak wspomniano wcześniej, każdy plik Docker powinien zawierać dyrektywę CMD lub.

Podsumowując.

Podsumowując, punkt Entrypo Docker jest znacznie odpowiednim wyborem przy określaniu wykonywania dla kontenerów. Aby dowiedzieć się więcej, sprawdź dokumentację.