Docker простыми словами – Telegram
Docker простыми словами
6.29K subscribers
219 photos
28 videos
3 files
123 links
Сообщество по докеру.

Рассказываем про docker и его применение в программировании и тестировании.

Открыты к критике и ждем вашего фидбека.
@viktorreh @anothertechrock
Download Telegram
Очистка образов Docker
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
Что такое Docker простыми словами
😁6👌2
Знание контейнеров: путь к большим деньгам в ИТ или временный хайп? 💰

19 мая (понедельник) в 18:00 присоединяйтесь к настоящему батлу мнений.

В прямом эфире разработчики контейнерной платформы «Штурвал» вместе с AM Live соберут тех, кто знает индустрию изнутри.

Топовые спикеры обсудят, действительно ли знание Docker и Kubernetes в приоритете нужных навыков или это проходящая мода, которая никак не влияет на успешный карьерный трек?

Основные вопросы дискуссии:
▪️Насколько знания контейнеризации повышают конкурентоспособность и стоимость специалиста на рынке?
▪️Кто сейчас нужен больше — IT-специалист или IT generalist?
▪️Опыт работы с «ванильным» K8s VS с коммерческой платформой: есть ли разница?
▪️Что делать, если Kubernetes вообще не нравится?
▪️Площадки для обучения контейнеризации: норм или стрем?

🔜 Регистрация
Удаление томов в Docker🐬
Хотите ускорить свою работу и максимально раскрыть потенциал VSCode в задачах Data-инженера?

21 мая в 20:00 МСК на открытом вебинаре разберём 15 незаменимых расширений VSCode, которые повысят продуктивность инженеров данных. Узнаете, как настроить AI-ассистента Continue. dev — бесплатную альтернативу GitHub Copilot, и упростить работу с Docker, Jupyter и форматами данных прямо в VSCode.

После урока вы сможете автоматизировать рутинные задачи, сократить время на настройку окружения и получить удобный набор инструментов для анализа данных и разработки пайплайнов.

➡️ Регистрируйтесь и получите скидку на курс «Data Engineer»: https://vk.cc/cM0ioj

🎁 Скидка на 15% на курс до 19 мая ждет вас и еще дарим дополнительный промокод DE5 до 10 июня.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡2
Удаление образов в Docker
👎4👍1🌚1
Learning Docker Networking

Автор: Rajdeep Dua
Год издания: 2016

#docker #en #книга

Скачать книгу
1
🐳 Как устроен Docker: что происходит «под капотом»

Поговорим немного про базу.

Docker — одно из самых популярных средств контейнеризации. Его простота снаружи скрывает сложную архитектуру. Разберём, как он устроен внутри.

1) Что такое контейнер?

Контейнер — изолированная среда, где запускается приложение со всеми зависимостями.
⚠️ Это не виртуальная машина: контейнер делит ядро ОС с хостом, но видит только свою «песочницу» через изоляцию.

2) Основные компоненты


• Docker Engine
– Docker Daemon (dockerd) управляет контейнерами, образами, сетями
– Docker CLI (docker) — интерфейс пользователя
– REST API — взаимодействие CLI и Daemon

👉 Пример: docker run nginx → CLI отправляет запрос, Daemon находит образ, создаёт контейнер, запускает процесс.

3) Namespaces

Механизм изоляции в Linux, создающий для контейнера:

• свой процессный ID (pid namespace)
• файловую систему (mnt namespace)
• сеть (net namespace)
• hostname (uts namespace)
• IPC (ipc namespace)

👉 Благодаря namespace контейнер видит «свою» мини-ОС, хотя на деле — это лишь виртуальные границы.

4) Cgroups

Ограничивают и учитывают ресурсы (CPU, RAM, I/O, сеть).
Пример: можно задать лимит 512 МБ RAM и 0.5 CPU.
Если приложение превышает лимит — Docker его ограничит или остановит.

5) Union File Systems (OverlayFS)

Docker использует многослойную файловую систему. Каждый шаг Dockerfile создаёт новый слой.
При запуске контейнера создаётся верхний writable-слой, остальные read-only.

👉 10 контейнеров на одном образе разделяют слои → экономия места.

6) Container Runtime

Docker использует runc для запуска контейнера (соответствует OCI Runtime Spec).
Daemon вызывает runc, который через clone(), setns(), chroot() изолирует процесс.

7) Docker Images

Образ — read-only слои, собранные в Union FS.
Каждый слой — изменения относительно предыдущего (например, установка пакета → новый слой).
Хранение: локально (/var/lib/docker) или в реестре (Docker Hub, GitLab Container Registry).

8) Docker Networking

Docker создаёт виртуальные сети (bridge, overlay, host).
По умолчанию контейнеры подключаются к bridge и получают IP из внутреннего пула.

👉 Можно пробросить порты через -p, создать собственные сети, объединять контейнеры через docker network connect.

В Swarm используется Overlay network (сеть между хостами).

9) Безопасность

Docker использует:

• seccomp (ограничение системных вызовов)
• AppArmor / SELinux (контроль привилегий)
• user namespaces (отображение UID контейнера в другой UID хоста)

⚠️ По умолчанию контейнеры имеют широкий доступ (например, /proc виден). Для production стоит ограничивать права (например, --cap-drop).

10) Что происходит при `docker run nginx`?

1. CLI отправляет запрос через API
2. Daemon ищет образ (локально или в registry)
3. Создаётся read-write слой контейнера
4. Создаются namespace (pid, net, mnt…)
5. Применяются cgroups
6. Вызывается runc для изоляции процесса
7. Контейнер подключается к сети
8. Запускается ENTRYPOINT/command

Контейнер живёт, пока жив его процесс.

11) Почему Docker — не магия?

Docker использует стандартные возможности ядра Linux (namespaces, cgroups, chroot, seccomp, overlayfs), оборачивая их в удобный интерфейс.

Контейнер — просто изолированный процесс, а не полноценная VM.
Поэтому Docker лёгкий, быстрый, удобный.

12) Заключение

Под капотом Docker:

• namespaces — изоляция
• cgroups — контроль ресурсов
• runc — запуск
• overlayfs — многослойная ФС
• REST API + Daemon + CLI — взаимодействие

Docker скрывает сложность, давая простой инструмент для запуска, сборки, развёртывания приложений.

Теперь, зная внутреннее устройство, можно глубже понять контейнеры, лучше их настраивать и оптимизировать.

➡️ Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍8🔥5👌1
💡 Docker Tip: ускоряем сборку с помощью BuildKit + Target Stage

Многие знают про docker build, но редко используют BuildKit + multi-stage с опцией `--target` для локальной отладки.

👉 Если у тебя много стадий (например, build + тесты + production), ты можешь не собирать всё каждый раз, а запускать только нужную стадию:

Пример:


DOCKER_BUILDKIT=1 docker build --target dev-stage -t myapp:dev .


📈 Что это даёт:

- ⚡️ Пропускаешь финальную сборку (например, оптимизацию прод-образа)
- 🔍 Быстро тестируешь только нужный слой (например, dev-stage)
- 💾 Экономишь кэш и ускоряешь сборку — собирается только то, что нужно

🔥 Включи BuildKit по умолчанию

Добавь в файл ~/.docker/config.json:


{
"features": {
"buildkit": true
}
}


Теперь docker build всегда использует BuildKit — он быстрее, лучше кэширует и умеет собирать слои параллельно.

---

🎯 Бонус-совет: кэш зависимостей через RUN --mount=type=cache

Для Python:


RUN --mount=type=cache,target=/root/.cache \
pip install -r requirements.txt


Для npm:


RUN --mount=type=cache,target=/root/.npm \
npm install


Это ускоряет повторные билды на десятки процентов 💨

👀 Итог:
Не просто строй Docker-образы — строй их умно. BuildKit + правильные таргеты + кэш → твой билд летает 🚀
👍73
А ты сможешь пройти тест на «Data Engineer»?

🔥 ПРОЙТИ ТЕСТ: https://vk.cc/cMqglw

Проверь себя - пройди тест и оцени свой уровень навыков, а также свою готовность к обучению на курсе — «Data Engineer» от Отус.

Про курс! Под руководством практикующих экспертов ты сможешь:
💚освоить инструменты data-инженерии
💚изучить на практике Apache Spark, Airflow и ClickHouse, 💚создавать эффективные ETL-процессы и пайплайны обработки данных

🎁 Промокод на доп.скидку на курс DE_10 до 31 мая, позволяющий увеличить скидку до 20% со скидками мая.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM