Doker

Jak działa plik Docker?

Jak działa plik Docker?
Za pomocą obrazu dockera możesz wdrożyć tylko jeden kontener. Jeśli jednak musisz wdrożyć kilka kontenerów (każdy dla różnych zadań) z tego samego obrazu, to co się dzieje? Możesz rozwiązać ten problem za pomocą dockerfile.

Dockerfile to prosty plik tekstowy, który zawiera wszystkie polecenia, które użytkownik może wywołać w wierszu poleceń, aby złożyć lub zbudować obraz. Za pomocą kompilacji docker można łatwo zautomatyzować kompilację, która uruchamia wiele poleceń zdefiniowanych w pliku docker po kolei.

Na przykład, chcesz pobrać obraz dockera z centrum dokera dla swoich konkretnych potrzeb programistycznych. Następnie chcesz zaktualizować obraz, zainstalować pakiety dla swojego procesu rozwoju. W takim przypadku możesz utworzyć plik dockerfile, uwzględnić wszystkie parametry odpowiadające Twoim konkretnym potrzebom i zbudować własny obraz. Po utworzeniu pliku docker, możesz go wielokrotnie używać do budowania tego samego obrazu bez ręcznego instalowania wszystkich pakietów wymaganych w procesie rozwoju.

Podstawowy plik dockera

Przed rozpoczęciem pracy z plikiem dockerfile, jeśli ważne jest, aby wiedzieć, jak utworzyć plik docker. Dockerfile zawiera określone słowa kluczowe, które można wykorzystać do zbudowania określonego obrazu. Poniżej znajduje się krótkie wyjaśnienie wszystkich słów kluczowych użytych w pliku docker:

Tworzenie pliku Docker

W tej sekcji utworzymy plik docker, aby zbudować obraz serwera LAMP z podstawowego obrazu Ubuntu.

Najpierw musisz utworzyć katalog do przechowywania pliku docker. Możesz go utworzyć za pomocą następującego polecenia:

mkdir LAMP

Następnie utwórz katalog o nazwie Dockerfile wewnątrz katalogu:

LAMPA nano/plik Dockercker

Dodaj następujące wiersze:

Z ubuntu: najnowsze
KONSERWATOR Hitesh Jethva
ENV DEBIAN_FRONTEND=nieinteraktywny
URUCHOM apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
CMD ["apachectl","-D","PRZEGLĄD"]
EKSPOZYCJA 8080

Zapisz i zamknij plik, gdy skończysz.

Budowanie obrazu za pomocą Dockerfile

Po utworzeniu pliku Dockerfile możesz łatwo utworzyć niestandardowy obraz LAMP za pomocą pliku Dockerfile.

Najpierw zmień katalog na LAMP i uruchom następujące polecenie, aby zbudować obraz z tego pliku:

LAMPA CD
Docker build -t "lampa:Dockerfile".

Powyższe polecenie rozpocznie pobieranie najnowszego obrazu Ubuntu z Docker Hub i zainstalowanie niezbędnych pakietów określonych w pliku Dockerfile. Po pomyślnym zbudowaniu obrazu powinieneś zobaczyć następujące dane wyjściowe:

Wysyłanie kontekstu kompilacji do demona Docker 2.048kB
Krok 1/6: Z ubuntu: najnowszela
najnowsze: Pobieranie z biblioteki/ubuntu
54ee1f796a1e: Ciągnięcie zakończone
f7bfea53ad12: Ciągnięcie zakończone
46d371e02073: Ciągnięcie zakończone
b66c17bbf772: Ciągnięcie zakończone
Podsumowanie: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6ee2cda2be67a5
Status: Pobrano nowszy obraz dla ubuntu:najnowszy
---> 4e2eef94cd6b
Krok 2/6: KONSERWATOR Hitesh Jethva
---> Działa w 047977af2c2a
Wyjmowanie pojemnika pośredniego 047977af2c2a
---> 1331df625c4c
Krok 3/6 : ENV DEBIAN_FRONTEND=nieinteraktywny
---> Bieganie w 3597152c7a1b
Wyjmowanie pojemnika pośredniego 3597152c7a1b
---> 86c82c95e75d
Krok 4/6 : URUCHOM apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
Wyjmowanie pojemnika pośredniego 322532299fd9
---> f6897a9554f7
Krok 5/6 : CMD ["apachectl","-D","PRZEGLĄD"]
---> Działa w 669635bc8bcb
Wyjmowanie pojemnika pośredniego 669635bc8bcb
---> e8400eb2e677
Krok 6/6 : EKSPOZYCJA 8080
---> Działa w 937ae2b2d305
Wyjmowanie pojemnika pośredniego 937ae2b2d305
---> 2123a857361d
Pomyślnie zbudowano 2123a857361d
Pomyślnie otagowano lampę:Dockerfile

Możesz teraz wyświetlić listę nowo skompilowanego obrazu, uruchamiając następujące polecenie:

obrazy dokowane

Powinieneś zobaczyć następujące dane wyjściowe:

REPOZYTORIUM IDENTYFIKATOR OBRAZU UTWORZONY ROZMIAR
lampa Dockerfile 2123a857361d 44 sekundy temu 520MB
ubuntu najnowszy 4e2eef94cd6b 8 dni temu 73.9 MB

Teraz masz w ręku niestandardowy obraz serwera LAMP. Możesz także zobaczyć historię każdego polecenia za pomocą następującego polecenia:

Lampa historii dockera:Dockerfile

Powinieneś zobaczyć następujące dane wyjściowe:

OBRAZ UTWORZONY WEDŁUG ROZMIARU KOMENTARZ
2123a857361d 16 minut temu /bin/sh -c #(nop) EKSPOZYCJA 8080 0B
e8400eb2e677 16 minut temu /bin/sh -c #(nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 16 minut temu /bin/sh -c aktualizacja apt-get -y && apt-get inst… 446MB
86c82c95e75d 17 minut temu /bin/sh -c #(nop) ENV DEBIAN_FRONTEND=nonin… 0B
1331df625c4c 17 minut temu /bin/sh -c #(nop) KONSERWATOR Hitesh Jethva 0B
4e2eef94cd6b 8 dni temu /bin/sh -c #(nop) CMD ["/bin/bash"] 0B

Tworzenie kontenera z obrazu LAMP

Teraz możesz uruchomić kontener ze swojego obrazu za pomocą następującego polecenia:

Docker run -dit lampa:Dockerfile

Po uruchomieniu kontenera powinieneś zobaczyć następujące dane wyjściowe:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Uruchomiony kontener można zweryfikować za pomocą następującego polecenia:

doker ps

Powinieneś otrzymać następujące dane wyjściowe:

IDENTYFIKATOR KONTENERA OBRAZ POLECENIE UTWORZENIE STANU NAZWY PORTÓW
c14794784eb2 lamp:Dockerfile "apachectl -D FOREGR… " 2 minuty temu W górę 2 minuty 0.0.0.0:8080->8080/tcp dziwaczny_ramanujan

Wniosek

W tym przewodniku dowiedziałeś się, co to jest Dockerfile i jak zbudować obraz dockera za pomocą Dockerfile. Jest to bardzo przydatne do tworzenia niestandardowych obrazów zamiast wprowadzania zmian do ściągniętego obrazu.

Gry Jak używać AutoKey do automatyzacji gier Linux
Jak używać AutoKey do automatyzacji gier Linux
AutoKey to narzędzie do automatyzacji pulpitu dla systemów Linux i X11, zaprogramowane w Python 3, GTK i Qt. Korzystając ze skryptów i funkcji MAKRO, ...
Gry How to Show FPS Counter in Linux Games
How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...
Gry How to download and Play Sid Meier's Civilization VI on Linux
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...