UNIXAWESOME

Docker. Что это такое и зачем он нужен? Часть 1

#docker #container

Docker — это платформа для создания, доставки и запуска приложений в изолированных средах, называемых контейнерами. Он позволяет разработчику упаковать приложение вместе со всеми его зависимостями в единый стандартный модуль — образ, который можно легко перенести и запустить на любой машине с установленным Docker.

Docker против виртуальных машин: в чем разница и что выбрать

Если вы работаете с серверами или разработкой, наверняка слышали о Docker и виртуальных машинах (ВМ). Обе технологии помогают изолировать приложения, но делают это по-разному.

1. Как работают виртуальные машины?

Виртуальная машина (VM) — это полностью изолированная среда, которая эмулирует реальный компьютер.

Пример:
Если вы запускаете 3 виртуальные машины на одном сервере, то у вас будет:

Плюсы ВМ:

Минусы ВМ:

2. Как работает Docker?

Docker использует контейнеризацию — более легковесный подход.

Пример:
Если у вас есть сервер с Ubuntu, то все контейнеры будут использовать то же ядро Linux, но изолированно друг от друга.

Плюсы Docker:

Минусы Docker:

3. Docker vs VM: сравнение

Характеристика Docker (контейнеры) Виртуальные машины (ВМ)
Изоляция Процессная (через namespaces) Полная (отдельная ОС)
Запуск Секунды Минуты
Ресурсы Минимум (МБ) Много (ГБ)
Масштабируемость Легко (Kubernetes) Сложнее
Безопасность Хорошо (но меньше, чем ВМ) Максимальная
Использование ОС Общее ядро хоста Своя ОС на каждую ВМ

4. Когда что использовать?

Выбирайте Docker, если:

Выбирайте виртуальные машины, если:

5. А можно вместе?

Да! Например:

Вывод

Выбор зависит от задачи. В современном DevOps часто используют оба подхода в разных сценариях.

Docker стал стандартом в мире DevOps и разработки благодаря своей простоте и эффективности. Но чтобы им пользоваться, нужно разобраться в ключевых понятиях: контейнеры, образы, Dockerfile и Docker Hub.

1. Образ (Image)

Образ (Image) — это шаблон, на основе которого создаются контейнеры. Его можно сравнить с “упакованным приложением”, содержащим:

Примеры популярных образов:

2. Контейнер (Container)

Контейнер — это запущенный экземпляр образа. Если образ — это “чертёж”, то контейнер — это “дом”, построенный по этому чертежу.

3. Dockerfile

Dockerfile — это текстовый файл с инструкциями для сборки образа. В нём описывается:

4. Docker Hub

Docker Hub — это облачный реестр (хранилище) образов, как GitHub для кода.

Что можно делать в Docker Hub?

Reply to this post by email ↪