Docker Compose – Пълно ръководство
Какво е Docker Compose
Docker Compose е инструмент, който се използва за дефиниране и управление на множество контейнери в Docker-базирана приложна среда. Той позволява да се декларират всички компоненти – контейнери, мрежи, томове и други настройки – в един файл, наречен "docker-compose.yml".
След това с една команда Docker Compose може да стартира или спре цялата приложна среда, както и да изпълни други операции върху контейнерите.
Дефиниране на услуги
В Docker Compose, услугите са описани във файл docker-compose.yml. Файлът ще съдържа списък с услуги, като всяка услуга ще има свои настройки, включително изображение, портове във вътрешната мрежа, външни портове, изисквания за монтиране на томове и други.
Основните концепции и функции на Docker Compose
docker-compose.yml файл
Това е основният файл, използван от Docker Compose, за да опише цялата приложна среда. В този файл се декларират всички компоненти на приложението, включително контейнерите, техните настройки, мрежи, томове и други параметри. Файлът има проста структура във YAML формат.
Сървъри
Docker Compose разделя приложната среда на различни услуги или сървъри. Всяка услуга е дефинирана във файла docker-compose.yml като отделна секция. Всяка услуга може да има свое име, базов образ, команди за стартиране, настройки на контейнера и други параметри.
Контейнери
Всяка услуга в Docker Compose се изпълнява като контейнер. Контейнерите са изолирани, леки и преносими единици, които пакетират всичко необходимо за изпълнението на определено приложение или услуга. Docker Compose позволява конфигуриране на различни настройки за контейнерите, като например връзка с външни портове, монтиране на томове, дефиниране на променливи на средата и други.
Мрежи
Docker Compose позволява създаването на изолирани мрежи за комуникация между контейнерите в приложната среда. В мрежите могат да бъдат дефинирани именовани мрежи, които да обединяват определени услуги и да им предоставят комуникационна връзка помежду си.
Томове
Docker Compose позволява монтирането на томове към контейнерите. Това позволява персистентно съхранение на данни и споделяне на файлове между контейнери или между контейнери и хост системата.
Команди и операции
С Docker Compose можете да изпълнявате различни операции върху вашата приложна среда. Например, можете да стартирате и спрете цялата среда с една команда, да прегледате логовете на контейнерите, да извършвате мащабиране на услуги (scale) или да изпълнявате команди в контейнерите.
Примера за използване на Docker Compose
Пример с една услуга:
version: '3'
services:
web:
image: nginx:latest
ports:
- 80:80
Този пример дефинира една услуга с име "web", която използва контейнер на Nginx образ и препраща порт 80 от хост системата към порт 80 на контейнера.
Пример с множество услуги и мрежа
version: '3'
services:
web:
image: nginx:latest
ports:
- 80:80
networks:
- mynetwork
db:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=secret
networks:
- mynetwork
networks:
mynetwork:
Този пример дефинира две услуги – "web" и "db", които отговарят на съответното изображение на Nginx и MySQL. Те са свързани към общата мрежа с името "mynetwork". Услугата "web" излага порт 80, докато услугата "db" използва променлива на средата за задаване на парола за root потребителя на MySQL.
Пример за скалиране на услугата
version: '3'
services:
web:
image: nginx:latest
ports:
- 80:80
scale: 3
Този пример дефинира услуга с име "web", което използва контейнера на Nginx образ. Чрез параметъра "scale" сме дефинирани, че искаме да имаме три инстанции на тази услуга, които ще бъдат стартирани и слушани на порт 80.
Това са само някои прости примери за използване на Docker Compose. Файлът docker-compose.yml може да съдържа и други параметри, като монтиране на томове, настройка на околната среда, дефиниране на зависимостта между услугите и други. С помощта на Docker Compose можете да дефинирате и управлявате по-сложни приложни среди с множество услуги и контейнери.
Заключение
Docker Compose е мощен инструмент за управление на контейнерни приложения в Docker. Той предлага удобен начин за дефиниране на услуги, конфигуриране на тяхната мрежа и изграждане на цялостното приложение. След като научите основите на Docker и Docker Compose, може да започнете да използвате тези инструменти за бързото развитие и доставка на вашите контейнерни приложения.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut