Що таке Docker?
Docker — це потужна платформа для віртуалізації, яка дозволяє запускати кілька операційних систем на одному хості, забезпечуючи ізоляцію програм у контейнерах.
Чому Docker такий популярний?
- Портативність: Контейнер можна перемістити з одного комп’ютера на інший, і він працюватиме так само, незалежно від операційної системи.
- Швидкість: Контейнери запускаються набагато швидше, ніж віртуальні машини.
- Ізоляція: Кожен контейнер — це окреме середовище, що допомагає уникнути конфліктів між різними додатками.
- Ефективність: Контейнери використовують менше ресурсів, ніж віртуальні машини.
Навіщо використовувати Docker?
Docker — це потужний інструмент для розробки програмного забезпечення та віртуалізації. Його можна використовувати для того, щоб забезпечити швидку і безпечну доставку застосунків і зменшити час на розгортання. Клієнт-серверна архітектура Docker означає, що програма складається з клієнта, який комунікує з сервером, тобто демоном Docker (dockerd).
Як ви бачите на зображенні нижче, контейнери Docker працюють поверх хосту Operaції системи.

Основні концепції Docker:
- Образи Docker (Docker images) є шаблонами для створення контейнерів. Вони можуть містити вже попередньо налаштоване програмне забезпечення, що пришвидшує процес розгортання.
- Контейнери Docker — це виконувані одиниці, які ізольовано працюють на хості. Контейнер створюється з образу і є його копією. Це дозволяє створювати багато контейнерів з одного образу та забезпечує зручне управління застосунками.
- Реєстри Docker (Docker registries) — це сховища для зберігання та розповсюдження образів. Існують публічні (наприклад, Docker Hub) і приватні реєстри.
Архітектура Docker
Docker складається з кількох основних компонентів:

- Docker Engine — це серверна частина, або демон (dockerd), що відповідає за управління контейнерами та комунікацію з клієнтами.
- Docker Images — це шаблони, на основі яких створюються контейнери. Вони можуть містити операційні системи, бібліотеки та програмне забезпечення, необхідне для роботи програми.
- Docker Containers — це самі робочі одиниці, ізольовані середовища, що виконують програмне забезпечення. Контейнер може бути створений з образу і містити конкретне середовище для запуску програм.
- Docker Registries — це місце для зберігання образів. Docker Hub є найбільш відомим публічним реєстром, де можна знайти мільйони готових образів.
Як працює Docker:
Docker працює за допомогою взаємодії між клієнтом і сервером. Клієнт Docker надсилає запити до демону, який виконує ці запити. Кожен контейнер працює ізольовано від інших, що дозволяє ефективно використовувати ресурси та забезпечувати безпеку. Команди Docker допомагають створювати контейнери, запускати їх, зупиняти та видаляти.
Наприклад, за допомогою команди docker pull
можна завантажити образ з реєстру, а за допомогою docker run
— створити контейнер з цього образу. Docker підтримує інтерактивний режим роботи з контейнерами через термінал, що дозволяє запускати командні оболонки безпосередньо в контейнерах.
Як встановити Docker на Linux/Ubuntu
Для того щоб встановити Docker на Ubuntu, потрібно виконати кілька кроків:
- Оновіть системні пакети та встановіть необхідні залежності:
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*знак “\” не є обов’язковим, він використовується для нового рядка, при бажанні ви можете написати команду без використання “\” лише в одному рядку.
2. Додайте GPG-ключ Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
3. Додайте репозиторій Docker до списку джерел:
$ sudo add-apt-repository \
“deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable”
4. Оновіть джерела APT:
$ sudo apt-get update
5. Встановіть Docker:
$ sudo apt-get install docker-ce
Наведена вище команда встановлює Docker та інші додаткові необхідні пакети. До Docker 1.8.0 назва пакета була lxc-docker, а між Docker 1.8 і 1.13 назва пакета була docker-engine.
ПРИМІТКА: Докер для Windows Вимагається Windows 10 Pro або Enterprise версії 14393 або Windows сервер 2016 RTM для запуску.
Як використовувати Docker:
Після встановлення Docker можна використовувати базові команди для управління контейнерами:
alpine — це мінімальний образ Docker на основі Alpine Linux із повним індексом пакетів і розміром лише 5 МБ.
- Перевірити загальну інформацію про Docker:
sudo docker info
2. Завантажити образ:
sudo docker pull alpine
3. Запустити контейнер з образу:
sudo docker run -i -t alpine /bin/bash
4. Перевірити всі запущені контейнери:
docker ps
5. Переглянути всі контейнери, охоплюючи зупинені:
docker ps -a
Docker дозволяє вам зручно управляти контейнерами, працювати з образами, а також отримувати інформацію про використання ресурсів і стан контейнерів.
Що таке віртуалізація?
Віртуалізація дозволяє запускати кілька операційних систем на одному фізичному сервері, що значно підвищує ефективність використання апаратних ресурсів. З традиційними віртуальними машинами (VM) кожен екземпляр має власну операційну систему, що може призводити до значних витрат ресурсів. Docker використовує технологію контейнерів, яка дозволяє працювати в межах одного хоста з кількома ізольованими середовищами, що споживають менше ресурсів, надаючи більшу гнучкість і продуктивність.
Основні команди Docker:
Команда | Опис |
---|---|
docker info | Інформація про Docker (загальна інформація про систему, версію та конфігурацію). |
docker pull | Завантаження образу з Docker Hub або іншого реєстру. |
docker run -i -t image_name /bin/bash | Запуск контейнера з образу в інтерактивному режимі (з доступом до командного рядка). |
docker start container_name | Запуск існуючого контейнера за його ім’ям. |
docker stop container_name | Зупинка контейнера за його ім’ям. |
docker ps | Список усіх запущених контейнерів. |
docker stats | Показує статистику про використання ресурсів контейнерами (CPU, пам’ять, мережа). |
docker images | Список всіх завантажених локальних образів Docker. |
docker container prune | Очищення всіх зупинених контейнерів та звільнення ресурсів (можна використовувати для видалення всіх зупинених контейнерів). |
Підсумки:
Docker — це потужна платформа для віртуалізації, яка дозволяє запускати кілька операційних систем на одному хості. Це значно покращує процес розподілу інфраструктури та програм, забезпечуючи швидку доставку програмного забезпечення в різних середовищах. Docker застосовується для створення контейнеризованих застосунків, що дозволяє ізолювати програмне середовище та мінімізувати ризики несумісностей.
Архітектура Docker:
Основні компоненти Docker містять:
- Docker Engine — основний механізм Docker, що працює як клієнт-серверна система. Клієнт взаємодіє з сервером через API, що дає змогу запускати та управляти контейнерами.
- Зображення Docker — це шаблони, з яких створюються контейнери. Вони містять усі необхідні компоненти для роботи застосунку, охоплюючи операційну систему, бібліотеки та програмне забезпечення. Зображення можуть бути завантажені з Docker Hub або створені користувачем.
- Реєстри Docker — місце зберігання образів Docker. Вони можуть бути публічними або приватними. Docker Hub є найбільшим публічним реєстром, де можна знайти тисячі готових образів.
- Контейнери Docker — це ізольовані, легковагі екземпляри образів, які запускаються на хості. Контейнер працює як незалежне середовище для виконання програмного коду. Кожен контейнер є копією відповідного образу, але з власною інстанцією для виконання процесів.
Ключові концепти Docker:
- Docker Engine — клієнт-серверна система, де сервер (демон Docker) обробляє команди від клієнта для запуску та керування контейнерами.
- Docker Image — основа для створення контейнерів, що включає всі необхідні залежності для програми. Це портативні, стандартизовані середовища для розгортання програм.
- Docker Registry — це сховище, яке зберігає образи Docker. Вони можуть бути публічними (наприклад, Docker Hub) або приватними, що дає можливість зберігати унікальні образи для специфічних потреб.
- Docker Containers — це ізольовані середовища, що надають необхідні ресурси для запуску програм. Завдяки контейнерам, програми стають портативними та зручними для переміщення між різними середовищами.