5 Przykłady dokonują przykładów Docker

5 Przykłady dokonują przykładów Docker
Docker Compose to wydajny i łatwy sposób wdrożenia kontenerów Docker na hoście. Komponować plik YAML i tworzy kontenery zgodnie z jego specyfikacjami. Specyfikacja obejmuje, jakie obrazy są potrzebne do wdrożenia, które konieczne są narażone określone porty, objętości, ograniczenia użytkowania procesora i pamięci itp.

Jest to łatwy sposób na skonfigurowanie zautomatyzowanego wdrażania aplikacji z frontendą, bazą danych i kilkoma hasłami i klawiszami dostępu. Za każdym razem, gdy uruchamiasz Docker-Compose z wewnętrznego katalogu zawierającego kompozycję dokera.YML Przechodzi przez plik i wdraża Twoją aplikację zgodnie z określoną.

Aby pomóc Ci napisać własny kompos.YML tutaj jest 5 prostych i, miejmy nadzieję, pomocne fragmenty Yaml, które możesz mieszać i dopasowywać.

1. Nginx odwrotny proxy

Prawdopodobnie najczęstszą aplikacją, którą należy wdrożyć jako kontener Docker, jest Nginx. Nginx może służyć jako odwrotny serwer proxy i jako punkt zakończenia SSL dla aplikacji internetowych. Różne systemy zarządzania treścią, takie jak Ghost i WordPress, mogą być hostowane za jednym serwerem proxy Nginx Reverse, a zatem sensowne jest posiadanie fragmentu fragmentu nginx przez cały czas. Pierwszą rzeczą, której potrzebujesz, jest plik konfiguracyjny Nginx. Jeśli zdecydujesz się go nie tworzyć, domyślny serwer HTTP jest tym, co otrzymasz.

Na przykład utworzyłbym folder nginx-configuration w moim folderze domowym. Plik konfiguracyjny nginx.Conf będzie obecny w tym folderze, wraz z innymi katalogami plików, których Nginx spodziewałby się at /etc /nginx. Obejmuje to certyfikaty SSL i klucze oraz nazwy hostów serwerów zaplecza, na których należy przekazać ruch uliczny.

Ten folder może być następnie zamontowany wewnątrz pojemnika Nginx at /Etc /nginx (za pomocą dopuszczania tylko do odczytu, jeśli wolisz dodatkowe środki ostrożności) i możesz uruchomić serwer jako kontener, ale możesz skonfigurować go lokalnie z katalogu domowego bez konieczności rejestrowania się do rejestrowania do kontenera.

To jest próbka:

Wersja: „3”
Usługi:
nginx:
Zdjęcie: nginx: najnowszy
wolumeny:
- /home/user/nginx-configuration:/etc/nginx
Porty:
- 80:80
- 443: 443

Blog Ghost

Ghost to CMS napisany głównie w węźle.JS i jest uproszczony, szybki i elegancki w projektowaniu. Opiera się na Nginx, aby kierować ruchem do niego i używa MariaDB lub czasami SQLite do przechowywania danych. Możesz wdrożyć szybki i brudny obraz dokera dla ducha za pomocą prostego fragmentu, jak pokazano poniżej:

Wersja: „3”
Usługi:
duch:
Zdjęcie: Ghost: najnowszy
Porty:
- 2368: 2368
wolumeny:
- Ghost-data:/var/lib/ghost/content/
wolumeny:
Data duchów:

To tworzy nowy tom i zamontuje go wewnątrz kontenera, aby przechowywać zawartość witryny. Możesz dodać poprzednią usługę proxy Nginx Reverse do tego pliku kompozycji i mieć blog Ghost Production, który działa w ciągu minuty, pod warunkiem, że skonfigurowałeś Nginx do kierowania odpowiedniego ruchu z portu 80 lub 443 do portu 2368 na duchu pojemnik.

Mariadb

Mariadb to dość przydatne oprogramowanie, które nie będzie dostępne w mgnieniu oka na serwer. Jednak bazy danych tworzą wiele dzienników, rzeczywiste dane mają tendencję do rozkładania się na całym miejscu i konfigurując serwery bazy danych i/lub klienci nigdy nie idą płynnie. Starannie spreparowany plik kompozycji dokera może złagodzić niektóre problemy, próbując przechowywać wszystkie odpowiednie dane w jednym tomie dokera, podczas gdy baza danych oprogramowanie a jego złożoność są schowane w pojemniku:

Wersja: „3”
Usługi:
MYDB:
Zdjęcie: Mariadb
środowisko:
- Mysql_root_password = my-secret-pw

Możesz utworzyć nowy kontener bazy danych dla każdej nowej aplikacji, zamiast tworzyć więcej użytkowników w tej samej bazie danych, konfigurować uprawnienia i przeglądanie bolesnej rigmarole zapewniania każdej aplikacji i użytkownika pozostania na własnej murawie. Nie będziesz musiał również otwierać portów w systemie hosta, ponieważ kontener bazy danych będzie działał we własnej izolowanej sieci i możesz ją mieć, aby tylko aplikacja mogła być częścią tej sieci, a tym samym uzyskać dostęp do bazy danych.

Stos WordPress

Kulminacja wszystkich różnych części od użycia zmiennych środowiskowych po uruchamianie serwera WWW i bazy danych zaplecza można połączyć w pliku kompozycji Docker dla witryny WordPress, jak pokazano poniżej:

Wersja: „3.3 '
Usługi:
DB:
Zdjęcie: Mysql: 5.7
wolumeny:
- db_data:/var/lib/mysql
Uruchom ponownie: Zawsze
środowisko:
MySQL_ROOT_PASSWORD: Some WordPress
MySQL_DATABase: WordPress
Mysql_user: WordPress
Mysql_Password: WordPress
WordPress:
zależy od:
- db
Zdjęcie: WordPress: najnowszy
Porty:
- „8000: 80”
Uruchom ponownie: Zawsze
środowisko:
WordPress_db_host: DB: 3306
WordPress_db_user: WordPress
WordPress_DB_Password: WordPress
wolumeny:
db_data:

Jest to najpopularniejszy przykład i jest również wspomniany w oficjalnej dokumentacji kompozycji dokera. Są szanse, że nie będziesz wdrażać WordPress, ale plik komponowania tutaj może nadal służyć jako szybkie odniesienie do podobnych stosów aplikacji.

Docker-Compose z Dockerfiles

Jak dotąd mieliśmy do czynienia tylko z czystą stroną wdrażania kompozycji dokera. Ale są szanse Następnie Wdrażanie aplikacji. Niezależnie od tego, czy jest to miejsce na lokalnej stacji roboczej, czy na dedykowanym serwerze CD/CI, Docker-Compose może zbudować obraz za pomocą pliku dokera obecnego u podstaw repozytorium dotyczącej aplikacji lub części aplikacji:

Wersja: „3”
Usługi:
front-end:
zbudować: ./kod frontu
Back-end:
Zdjęcie: Mariadb

Zauważyłeś, że chociaż usługa backendowa używa wcześniej istniejącego obrazu Mariadb, obraz frontendowy jest najpierw zbudowany z pliku Docker ./Diatoryd-kod frontend.

Bloki Lego kompozycji dokera

Cała funkcjonalność kompozycji dokera jest dość łatwa do zrozumienia, jeśli tylko najpierw zadamy sobie pytanie, co próbujemy zbudować. Po kilku literówkach i nieudanych próbach pozostanie z zestawem fragmentów, które działają bezbłędnie i można je połączyć jak bloki konstrukcyjne LEGO, aby zdefiniować wdrożenie aplikacji.

Mam nadzieję, że powyższe przykłady dadzą ci dobry początek od tego. Możesz znaleźć pełne odniesienie do pisania pliku komponowania tutaj.