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, може да започнете да използвате тези инструменти за бързото развитие и доставка на вашите контейнерни приложения.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: