Docker to narzędzie open source, które pakuje aplikacje, wszystkie wymagane pakiety i jego podstawowy system operacyjny w pakietach kontenerowych. Ponieważ kontenery Docker są samodzielne, działają na dowolnym systemie bez potrzeby rekonfiguracji.
Docker buduje kontenery z obrazów. Obraz Docker to samodzielny pakiet, który określa wszystkie wymagania potrzebne do uruchomienia aplikacji, takich jak system operacyjny, czas wykonywania, narzędzia systemowe, biblioteki, konfiguracje i inne. Docker konwertuje obrazy na kontenery w czasie wykonywania.
Docker buduje obrazy z konfiguracji zdefiniowanych w pliku dokerowym. Dockerfile to po prostu plik konfiguracyjny, który przedstawia wszystkie instrukcje dotyczące tworzenia obrazu Docker. W rezultacie budowanie obrazów Docker za pomocą pliku dokera jest łatwiejsze i znacznie wydajniejsze.
Ten przewodnik poprowadzi Cię przez tworzenie pliku dokera i użycie go do zbudowania obrazu Dockera.
Format DockerFile
Dockerfile to surowy dokument tekstowy. Wpisy w Dockerfile są w następującym formacie:
$ Argument instrukcji (y)
Pierwsza część określa polecenia Docker, których możesz użyć w skorupce dokera. Drugi reprezentuje argumenty lub określone wartości, które należy przekazać do podstawowej instrukcji.
NOTATKA: Instrukcje nie są wrażliwe. Jednak Docker zaleca użycie wielkich wyników do odróżnienia ich od argumentów.
Poniżej znajdują się popularne instrukcje w pliku dokera.
Z - Ta instrukcja określa obraz nadrzędny dla kolejnych instrukcji. Z klauzuli musi być pierwszym wpisem w pliku dokera. Może przyjść po komentarzu lub analizie lub argument używany w dyrektywie.
Arg - Definiuje zmienne używane podczas kompilacji po uruchomieniu polecenia Docker kompilacji w pliku.
CMD - To ustawia polecenie wykonane po tworzeniu kontenera. Docker pozwala tylko na jedną instrukcję CMD na plik. Kiedy masz więcej niż jeden zdefiniowany, uruchamia ostatnie polecenie.
ETYKIETA - Instrukcja etykiety określa informacje o metadanych dla obrazu. Możesz dodać tyle etykiet, ile uważasz za dopasowanie w postaci par kluczowych. Na przykład metadane obrazu mogą zawierać numer wersji, informacje autora, opis itp.
URUCHOMIĆ - Ustawia instrukcje, które należy wykonać podczas kompilacji obrazu.
UŻYTKOWNIK - Ta instrukcja ustawia nazwę użytkownika lub UID użytkownika podczas uruchamiania obrazu lub instrukcji w pliku dokerowym, takim jak CMD, uruchom.
PUNKT WEJŚCIA - Definiuje polecenia, które Docker wykonuje po tworzeniu kontenera. Opcje są nadrzędne w wierszu poleceń podczas uruchamiania kontenera.
DODAĆ - Niniejsza instrukcja kopiuje pliki i katalogi z określonego źródła do określonego miejsca docelowego. Źródłem może być ścieżka lokalna lub zewnętrzny adres URL. Jeśli pliki są archiwami, Docker automatycznie rozpakowuje je na obraz.
TOM - Instrukcje głośności umożliwiają tworzenie punktów montowania z katalogów maszyn hosta lub innych kontenerów.
UJAWNIĆ - Ta instrukcja informuje Dockera, na którym portu słuchać w czasie wykonywania.
Env - Ustawia zmienne środowiskowe.
Workdir - ustawia obecny katalog roboczy. Jeśli określony katalog nie istnieje, Docker automatycznie utworzy jeden.
Powyższe są kilka standardowych instrukcji, których można użyć w pliku dokerowym.
Jak utworzyć plik docker
Proces tworzenia pliku dokera jest prosty. Zacznij od utworzenia działającego katalogu dla operacji Docker. Następnie utwórz plik Docker i edytuj go z ulubionym edytorem tekstu.
$ cd ~
$ mkdir Docker
$ CD Docker
$ Touch Dockerfile
$ vim dockerfile
Zaczynamy od uzyskania obrazu podstawowego z hub Docker. Możemy to zrobić, używając instrukcji w pliku dokera.
W tym przykładzie utworzymy prosty kontener zawierający uruchomiony serwer Nginx na obrazie Debian 10.
Obraz Debian 10 w Docker Hub
Edytuj DockerFile i dodaj następujące wpisy.
Od Ebiana: 10.9
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
Cmd [„nginx”, „-g”, „demon off;”]
W powyższym DockerFile zaczynamy od zdefiniowania obrazu podstawowego (Debian 10.9)
Uruchamiamy różne polecenia APT w celu aktualizacji pakietów i instalowania serwera internetowego Nginx.
Następnie dodajemy informacje o metadanych o obrazie, w tym opiekun, wersja i opis.
Wreszcie ustawiamy port Expose, a polecenie wyłącza demon nginx. Polecenie powyżej zapobiega zatrzymaniu kontenera.
Zapisz plik i uruchom kompilację Docker na pliku.
Jak zbudować obraz Dockerfile
Po zakończeniu DockerFile możemy kontynuować budowę obrazu. Uruchom kompilację Docker w katalogu Docker:
$ CD ~/Docker
$ Docker Build -pull -rm -f „DockerFile” -t Docker: Najnowszy „."
W powyższym poleceniu używamy polecenia Docker Build i przekazujemy różne opcje. Na przykład -pull mówi Dockerowi, aby spróbował wyciągnąć najnowszą wersję obrazu.
-RM usuwa natychmiastowe pojemniki po zakończeniu procesu budowy obrazu.
-f Określa nazwę DockerFile.
Wreszcie opcja -t ustawia znacznik dla obrazu.
Powyższe polecenia z powodzeniem zbudują obraz i przechowują go na lokalnym dysku.
Możesz zweryfikować obraz, wywołując polecenie:
$ Docker Image LS
$ Docker Ostatnie 162E94589BEC 2 minuty temu 233 MB
Jak utworzyć kontener Docker
Teraz, gdy mamy obraz z pliku dokera, możemy iść naprzód i odrodzić pojemnik. Aby to zrobić, używamy polecenia Docker Run jako:
$ Docker Run -p 80:80 -Nazwa nginx Docker
Polecenia powyżej uruchomią pojemnik z nazwą nginx i powiązają kontener z portem 80.
Aby wyświetlić działające kontenery, użyj polecenia:
$ Docker Container LS
1C90266035B5 Nginx: ostatnie 57 sekund temu w górę 56 sekund 80/tcp nginx
Polecenie powyżej pokazuje kontener nginx w górę i uruchomiony.
Wniosek
Ten samouczek obejmował pisanie DockerFiles, tworzenie obrazów i uruchamianie kontenera Docker z obrazów. Aby dowiedzieć się więcej o DockerFiles, rozważ dokumentację.