Featured image of post Що таке Docker і Docker Compose і як їх встановити на Debian

Що таке Docker і Docker Compose і як їх встановити на Debian

Що таке Docker і Docker Compose

Docker і Docker Compose — це інструменти, призначені для спрощення процесу керування та розгортання програм у контейнерах. Ось огляд кожного з них, а також їхні відмінності та основні переваги.

Docker

Визначення:

Docker — це платформа, яка використовує контейнеризацію для розгортання, керування та запуску програм. Контейнери — це легкі, портативні та узгоджені середовища, які містять усе необхідне для запуску частини програмного забезпечення, наприклад код, середовище виконання, системні інструменти, бібліотеки та налаштування.

Ключові переваги:

  • Узгодженість: Docker гарантує, що програмне забезпечення працюватиме однаково незалежно від того, де воно розгорнуто, оскільки контейнери інкапсулюють усі залежності.
  • Ізоляція: контейнери працюють в ізольованих середовищах, що полегшує керування залежностями та уникнення конфліктів.
  • Портативність: контейнери можуть працювати в будь-якій системі, яка підтримує Docker, включаючи локальні сервери, публічні хмари та персональні машини.
  • Ефективність: контейнери Docker легкі та мають менші витрати порівняно з традиційними віртуальними машинами.
  • Масштабованість: Docker дозволяє легко масштабувати додатки по горизонталі, запускаючи кілька контейнерів на різних хостах.

Docker Compose

Визначення:

Docker Compose — це інструмент для визначення та запуску багатоконтейнерних програм Docker. Він використовує файл YAML для налаштування служб програми, мереж і томів, що дозволяє вам керувати декількома контейнерами як однією програмою.

Ключові переваги:

  • Спрощена конфігурація: Docker Compose використовує один файл YAML (docker-compose.yml) для налаштування всіх служб вашої програми, що полегшує керування та розуміння.
  • Керування кількома контейнерами: дозволяє визначати, запускати та керувати кількома взаємопов’язаними контейнерами за допомогою однієї команди (docker-compose up).
  • Послідовність середовища: забезпечує узгоджене середовище на різних етапах розробки, тестування та виробництва за допомогою того самого файлу конфігурації.
  • Мережа: автоматично налаштовує мережу, щоб контейнери могли спілкуватися один з одним без додаткового налаштування.
  • Керування томами: спрощує налаштування та керування томами даних, якими можна спільно користуватися між контейнерами.

Відмінності

  • Сфера застосування: Docker використовується для одноконтейнерних програм, тоді як Docker Compose розроблено для програм, що складаються з кількох контейнерів.
  • Використання: команди Docker (docker run, docker build тощо) використовуються для керування окремими контейнерами, тоді як команди Docker Compose (docker-compose up, docker-compose down тощо) керують цілими багатоконтейнерними програмами, визначеними в YAML. файл.
  • Конфігурація: Docker використовує Dockerfiles для визначення зображень контейнерів, тоді як Docker Compose використовує файл docker-compose.yml для визначення багатоконтейнерних програм, включаючи їхні мережі та томи.

Комбіновані ключові переваги

  • Оптимізована розробка: разом Docker і Docker Compose дозволяють швидко й узгоджено розробляти, тестувати та розгортати програми.
  • Відтворюваність: обидва інструменти гарантують, що середовище, в якому працює програма, є узгодженим на різних етапах, зменшуючи проблему “це працює на моїй машині”.
  • Спрощений CI/CD: інтеграція з конвеєрами CI/CD стає легшою, оскільки контейнери можна використовувати для запуску тестів і розгортання програм у узгодженому середовищі.
  • Ефективність використання ресурсів: контейнери використовують те саме ядро ​​ОС і можуть бути більш ефективними за використання ресурсів, ніж віртуальні машини.

Приклад

Припустімо, що у вас є веб-програма з такими компонентами:

  • веб-сервер (наприклад, Nginx)
  • сервер додатків (наприклад, Node.js)
  • база даних (наприклад, PostgreSQL)

З Docker:

  • Ви створюєте окремі файли Docker для кожного компонента, щоб контейнерувати їх.

З Docker Compose:

  • Ви створюєте файл docker-compose.yml, щоб визначити всі три служби та їх взаємодію.
  • Ви можете відкрити весь стек за допомогою однієї команди (docker-compose up).

Встановлення Docker

Перш за все оновіть системні пакети до останніх версій:

sudo apt update && sudo apt upgrade

Потім встановіть необхідні пакети:

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2

Додайте відкритий ключ GPG для офіційного репозиторію Docker:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Додайте репозиторій Docker debian до списку джерел менеджера пакетів apt:

echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

Оновіть індекси пакетів і встановіть Docker Community Edition:

sudo apt update && sudo apt install docker-ce

Увімкніть і запустіть демон docker systemd:

sudo systemctl enable --now docker

Нарешті перевірте інсталяцію, запустивши демонстраційний контейнер hello-world:

sudo docker run hello-world

Встановлення Docker Compose

Завантажте останню версію з офіційного репозиторію:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Додайте дозволи на виконання до завантаженого двійкового файлу:

sudo chmod +x /usr/local/bin/docker-compose

Перевірте встановлення, роздрукувавши версію Docker Compose:

docker-compose --version

Крім того, ви можете створити тестовий файл docker-compose.yml з декількома демонстраційними службами (наприклад, веб-сервер і база даних):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  database:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example

А потім, щоб запустити його, використовуйте команду:

docker compose up

Додатково

Якщо ви хочете запускати docker чи docker compose команди без sudo:

sudo usermod -a -G docker $USER
newgrp docker

Висновок

У цьому прикладі показано, як інсталювати Docker і Docker Compose у системі Debian, щоб вони доповнювали один одного під час розробки, розгортання та ефективного керування програмами.

Всі права захищено.