Jak automatycznie budować i skonfigurować niestandardowe obrazy Docker z DockerFile - Część 3
- 1946
- 15
- Ignacy Modzelewski
Ten samouczek skoncentruje się na tym, jak zbudować niestandardowy obraz dokera na podstawie Ubuntu z Apache Zainstalowana usługa. Cały proces zostanie zautomatyzowany za pomocą Dockerfile.
Obrazy dokera można automatycznie zbudować z plików tekstowych, nazwanych Dockerfiles. Plik Docker zawiera instrukcje lub polecenia uporządkowane krok po kroku używane do tworzenia i konfigurowania obrazu Docker.
Wymagania
- Zainstaluj Docker i naucz się manipulacji kontenerem Docker - Część 1
- Wdrażaj i uruchom aplikacje w ramach kontenerów Docker - Część 2
Zasadniczo plik Docker zawiera różne instrukcje w celu zbudowania i skonfigurowania określonego kontenera na podstawie twoich wymagań. Poniższe instrukcje są najczęściej używane, niektóre z nich są obowiązkowe:
Z
= Obowiązkowa jako pierwsza instrukcja w pliku Docker. Instruuje Dockera, aby wyciągnął obraz podstawowy, z którego budujesz nowy obraz. Użyj znacznika, aby określić dokładny obraz, z którego budujesz:
Np.: Z Ubuntu: 20.04
Opiekun
= Autor obrazu kompilacjiURUCHOMIĆ
= Ta instrukcja może być używana w wielu wierszach i uruchamia dowolne polecenia po utworzeniu obrazu Dockera.CMD
= Uruchom dowolne polecenie po uruchomieniu obrazu Dockera. Użyj tylko jednej instrukcji CMD w pliku dokera.PUNKT WEJŚCIA
= Tak samo jak CMD, ale używane jako główne polecenie obrazu.UJAWNIĆ
= Instruuje kontener, aby słuchał w portach sieciowych podczas uruchamiania. Porty kontenerowe nie są domyślnie osiągalne z hosta.Env
= Ustaw zmienne środowiska kontenera.DODAĆ
= Kopiuj zasoby (pliki, katalogi lub pliki z adresów URL).
Krok 1: Tworzenie lub pisanie repozytorium DockerFile
1. Najpierw stwórzmy jakiś rodzaj Dockerfile Repozytoria w celu ponownego wykorzystania plików w przyszłości, aby tworzyć inne obrazy. Zrób pusty katalog gdzieś w /var
partycja, w której utworzymy plik z instrukcjami, które zostaną użyte do zbudowania nowo Docker Image.
# mkdir -p/var/docker/ubuntu/apache # touch/var/docker/ubuntu/apache/dockerFileUtwórz repozytorium DockerFile
2. Następnie rozpocznij edycję pliku z następującymi instrukcjami:
# vi/var/docker/ubuntu/apache/dockerFile
Fragment Dokerfile:
Od Ubuntu Ceentinger your_name <[email protected]> Uruchom apt -get -y instaluj Apache2 Uruchom Echo „Hello Apache Server na Ubuntu Docker”>/var/www/html/index.HTML Expose 80 cmd/usr/sbin/apache2ctl -d na pierwszym planieRepozytorium DockerFile
Teraz przejdźmy do instrukcji pliku:
Pierwsza linia mówi nam, że budujemy z Ubuntu obraz. Jeśli nie zostanie przesłany, powiedzmy 14:10 Na przykład najnowszy obraz z Docker Hub Jest używane.
W drugim wierszu dodaliśmy nazwa I e-mail twórcy obrazu. Następne dwa URUCHOMIĆ Linie będą wykonywane w pojemniku podczas budowania obrazu i będą instalować Apache Demon i Echo jakiś tekst na stronie internetowej domyślnej Apache.
UJAWNIĆ Linia będzie instruować Docker kontener do słuchania na porcie 80, ale port nie będzie dostępny na zewnątrz. Ostatnia linia instruuje pojemnik do uruchomienia usługi Apache na pierwszym planie po uruchomieniu kontenera.
3. Ostatnią rzeczą, którą musimy zrobić, jest rozpoczęcie tworzenia obrazu poprzez wydanie poniższego polecenia, które lokalnie utworzy nowy obraz Docker o nazwie Ubuntu-Apache
Na podstawie Dockerfile utworzonego wcześniej, jak pokazano w tym przykładzie:
# Docker Build -t Ubuntu -Apache/var/docker/ubuntu/apache/Utwórz obraz Docker
4. Po utworzeniu obrazu przez Doker, Możesz wymienić wszystkie dostępne obrazy i zidentyfikować swój obraz, wydając następujące polecenie:
# Obrazy dokeraWymień wszystkie obrazy Docker
Krok 2: Uruchom kontener i uzyskaj dostęp do Apache z LAN
5. Aby uruchomić kontener w sposób ciągły (w tle) i uzyskać dostęp do usług eksponowanych kontenerów (portów) z hosta lub innej zdalnej maszyny w sieci LAN, uruchom poniższe polecenie w wierszu terminala hosta:
# Docker Run -d -p 81:80 Ubuntu -ApacheUruchom obraz kontenera Docker
Tutaj -D
Opcja uruchamia Ubuntu-Apache
pojemnik na tle (jako demon) i -P
Opcja mapuje port kontenerowy 80 do twojego portu LocalHost 81. Zewnętrzne dostęp do usługi Apache można dotrzeć przez port Port 81 tylko.
Polecenie NetStat da ci wyobrażenie o tym, jakie porty słucha host.
Po rozpoczęciu kontenera możesz również uruchomić Docker Ps
polecenie, aby wyświetlić status działającego kontenera.
6. Strona internetowa może być wyświetlana na hoście z wiersza poleceń za pomocą kędzior Narzędzie w stosunku do adresu IP komputerowego, Localhost lub Docker Net Interface na porcie 81. Użyj wiersza poleceń IP, aby wyświetlać adresy IP interfejsu sieciowego.
# IP Addr [List Nowork Interfaces] # Curl IP-Address: 81 [System Docker IP Adres] # Curl LocalHost: 81 [LocalHost]Sprawdź interfejs sieciowy Docker i adres IP Sprawdź stronę Docker Apache
7. Aby odwiedzić stronę internetową kontenera z sieci, otwórz przeglądarkę w zdalnej lokalizacji i użyj protokołu HTTP, adresu IP urządzenia, w którym działa kontener, a następnie port 81, jak pokazano na poniższym obrazku.
http: // ip-address: 81Sprawdź stronę Apache Container Container
8. Aby uzyskać wnętrze, które procesy działają w wydaniu kontenerowym, następujące polecenie:
# Docker PS # Docker TopSprawdź uruchamianie procesów Docker
9. Aby zatrzymać problem kontenera Docker Stop
polecenie, a następnie identyfikator lub nazwa kontenera.
# Docker Stop # Docker PS
10. W przypadku, gdy chcesz przypisać opisową nazwę dla kontenera, użyj --nazwa
Opcja, jak pokazano w poniższym przykładzie:
# Docker Run --Name my -Www -d -p 81:80 Ubuntu -Apache # Docker PSPodaj nazwę kontenera Docker
Teraz możesz odwołać się do kontenera do manipulacji (start, stop, top, statystyki itp.) Tylko za pomocą przypisanej nazwy.
# Docker Stats My-WwwMonitoruj wykorzystanie kontenera Docker
Krok 3: Utwórz cały system konfiguracyjny dla kontenera Docker
11. NA Centos/Rhel możesz utworzyć Systemd Plik konfiguracyjny i zarządzaj kontenerem, jak zwykle dla dowolnej innej usługi lokalnej.
Na przykład utwórz nowy plik SystemD, powiedzmy, Apache-Docker.praca
Korzystanie z następującego polecenia:
# VI/etc/Systemd/System/Apache-Docker.praca
Apache-Docker.praca fragment pliku:
[Jednostka] Opis = kontener apache wymaga = dokera.usługa po = Docker.Service [Service] Restart = zawsze execStart =/usr/bin/Docker start -a my -WWW execstop =/usr/bin/Docker Stop -t 2 My -Www [instaluj] Wantedby = Local.cel
12. Po zakończeniu edycji pliku zamknij go, ponownie załaduj demona SystemD, aby odzwierciedlić zmiany i uruchom kontener, wydając następujące polecenia:
# Systemctl Demon-Reload # Systemctl Start Apache-Docker.Service # Systemctl Status Apache-Docker.praca
To był tylko prosty przykład tego, co możesz zrobić z prostym Dockerfile Ale możesz zbudować kilka dość wyrafinowanych aplikacji, które możesz wystrzelić w ciągu kilku sekund przy minimalnych zasobach i wysiłku.
Dalsze czytanie:
Część 4: Jak monitorować kontenery Docker w Linux- « Jak uruchomić dowolny dystrybucję Linuksa bezpośrednio z dysku twardego w Ubuntu za pomocą menu Grub
- Jak zainstalować aktualizacje bezpieczeństwa w Ubuntu »