Docker простыми словами
Kanalga Telegram’da o‘tish
Сообщество по докеру. Рассказываем про docker и его применение в программировании и тестировании. Открыты к критике и ждем вашего фидбека. @viktorreh @anothertechrock
Ko'proq ko'rsatish6 300
Obunachilar
+124 soatlar
+17 kun
Ma'lumot yo'q30 kun
Ma'lumot yuklanmoqda...
O'xshash kanallar
Taglar buluti
Kirish va chiqish esdaliklari
---
---
---
---
---
---
Obunachilarni jalb qilish
Oktabr '26Okt '26
Oktabr '26
+8
0 kanalda
Sentabr '26
+55
0 kanalda
Get PRO
Avgust '26
+56
0 kanalda
Get PRO
Iyul '26
+63
2 kanalda
Get PRO
Iyun '26
+35
0 kanalda
Get PRO
May '26
+32
0 kanalda
Get PRO
Aprel '26
+45
0 kanalda
Get PRO
Mart '26
+48
0 kanalda
Get PRO
Fevral '26
+44
0 kanalda
Get PRO
Yanvar '26
+158
1 kanalda
Get PRO
Dekabr '25
+79
2 kanalda
Get PRO
Noyabr '25
+39
0 kanalda
Get PRO
Oktabr '25
+60
0 kanalda
Get PRO
Sentabr '25
+125
1 kanalda
Get PRO
Avgust '25
+81
0 kanalda
Get PRO
Iyul '25
+108
0 kanalda
Get PRO
Iyun '25
+127
0 kanalda
Get PRO
May '25
+377
9 kanalda
Get PRO
Aprel '25
+116
2 kanalda
Get PRO
Mart '25
+96
0 kanalda
Get PRO
Fevral '25
+248
2 kanalda
Get PRO
Yanvar '25
+495
8 kanalda
Get PRO
Dekabr '24
+56
1 kanalda
Get PRO
Noyabr '24
+54
2 kanalda
Get PRO
Oktabr '24
+113
3 kanalda
Get PRO
Sentabr '24
+442
15 kanalda
Get PRO
Avgust '24
+70
0 kanalda
Get PRO
Iyul '24
+176
2 kanalda
Get PRO
Iyun '24
+372
7 kanalda
Get PRO
May '24
+1 106
21 kanalda
Get PRO
Aprel '24
+4 231
25 kanalda
| Sana | Obunachilarni jalb qilish | Esdaliklar | Kanallar | |
| 05 Oktabr | +1 | |||
| 04 Oktabr | +1 | |||
| 03 Oktabr | +1 | |||
| 02 Oktabr | +1 | |||
| 01 Oktabr | +4 |
Kanal postlari
🐳 Как устроен 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 скрывает сложность, давая простой инструмент для запуска, сборки, развёртывания приложений.
Теперь, зная внутреннее устройство, можно глубже понять контейнеры, лучше их настраивать и оптимизировать.
➡️ Подробнее| 2 | Kagent + Ollama: ИИ-агент для работы с Kubernetes
Как использовать локальную языковую модель для работы с Kubernetes? На вебинаре разберём связку Kagent + Ollama и посмотрим, как ИИ-агент помогает анализировать состояние кластера и взаимодействовать с его ресурсами.
1 октября в 20:00 МСК на открытом вебинаре OTUS покажем, как запустить ИИ-агента с локальной LLM и применить его в DevOps-задачах.
На практике рассмотрим:
— какую роль выполняют Kagent и Ollama;
— как подключить локальную LLM к агенту;
— как агент анализирует состояние кластера и работает с Kubernetes-ресурсами;
— в каких повседневных задачах DevOps-инженера он может помочь;
— какие возможности и ограничения есть у агентного подхода.
После вебинара вы поймёте, как устроена связка Kagent + Ollama, увидите её применение в Kubernetes и сможете оценить, для каких задач в вашей инфраструктуре подходит ИИ-агент.
Урок проходит в преддверии старта курса «ИИ в работе DevOps-инженера».
👉 Регистрируйтесь: https://vk.cc/d23O7U
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 | 813 |
| 3 | Из вашего резюме вообще понятно, что вы умеете как DevOps-инженер?
Мы разбили работу DevOps-инженера на основные категории и сделали чекер, который показывает, какие из них в вашем резюме раскрыты хорошо, частично или почти не видны.
Опыт может быть - но по резюме этого не видно.
Проверь бесплатно и без регистрации:
https://updatecv.me/devops-resume-checker
А полный анализ резюме с правками доступен на: https://updatecv.me | 1 158 |
| 4 | 🐳 Docker-образ с 3,17 ГБ до 354 МБ - почти в 9 раз меньше
Такая оптимизация обычно достигается не одной магией, а несколькими простыми приёмами:
- multi-stage build
- python:slim / distroless вместо тяжёлого base image
- удаление build-зависимостей после сборки
- очистка apt / pip cache
- .dockerignore для лишних файлов
- установка только production-зависимостей
- объединение команд RUN, чтобы не тащить мусор в слои
Пример:
3.17 GB → 354 MB
Что это даёт:
- быстрее pull/push
- быстрее CI/CD
- меньше места в registry
- быстрее запуск новых pod
- меньше потенциальная attack surface
Перед оптимизацией полезно посмотреть, что реально раздувает образ:
docker history <image>
и отдельно проверить слои через dive.
Большой Docker image почти всегда стоит сначала разобрать по слоям — часто там лежат гигабайты build-tools, cache и файлов, которые в runtime вообще не нужны. | 1 288 |
| 5 | eBPF: рентгеновское зрение для production
Сервис замедлился, соединения обрываются, а привычные показатели указывают только на симптом. Чтобы найти настоящую причину, иногда нужно увидеть, что происходит глубже — на уровне ядра Linux.
23 сентября в 20:00 на открытом уроке курса «DevOps практики и инструменты» познакомитесь с eBPF — технологией, которая помогает исследовать сетевые события, производительность и безопасность работающей системы.
На демонстрации вы увидите, как Cilium Hubble показывает сетевые взаимодействия и помогает находить проблемы с трафиком. С помощью Tetragon разберёте обнаружение подозрительной активности на уровне ядра. Также рассмотрите диагностику узких мест без остановки сервисов.
Преподаватель объяснит архитектуру eBPF простыми словами — как программы безопасно запускаются в ядре, какие данные можно получать и почему этот подход расширяет возможности традиционного мониторинга.
Вы поймёте, для каких задач eBPF действительно полезен, где он дополняет существующие средства наблюдаемости и когда его внедрение будет избыточным.
👉 Зарегистрируйтесь: https://vk.cc/d1LA8H
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 | 1 678 |
| 6 | Чат с вашими резюме.
Присылайте резюме, чтобы HR вас увидела и ей(ему) было удобно с вами связаться.
IT Резюме
P.S сейчас там можно бесплатно «прожарить» свое резюме на предмет ошибок и обхода ATS | 1 774 |
| 7 | Что на самом деле делает `docker run -it` 🐳
Когда контейнеру нужен интерактивный shell, REPL или текстовый редактор, обычно запускают:
docker run -it ...
Но -i и -t делают разные вещи.
- -i (--interactive) — оставляет STDIN открытым, чтобы процесс внутри контейнера мог получать ввод с клавиатуры.
- -t (--tty) — создаёт pseudo-TTY, поэтому приложение ведёт себя как в обычном терминале.
Вместе они дают полноценную интерактивную сессию:
docker run -it ubuntu bash
Без -i не будет нормального интерактивного ввода.
Без -t приложение может работать, но без привычного терминального поведения: prompt, цветов, управления курсором и нормальной работы vim, top, less и других TTY-программ.
Под капотом схема примерно такая:
Terminal
↓
Docker CLI
↓
pseudo-TTY
↓
bash внутри контейнера
То есть -i отвечает за ввод, а -t — за сам терминал.
Если вы годами пишете docker run -it, но никогда не разбирались, зачем нужны оба флага, у iximiuz есть отличный практический challenge:
https://labs.iximiuz.com/challenges/docker-101-container-run-tty | 1 620 |
| 8 | Безопасность контейнеров
Автор: Лиз Райс
Год издания: 2021
#devops #ru
Скачать книгу | 1 829 |
| 9 | 🤯 Ошибка уже произошла. В логах — сотни строк, причин может быть несколько, а исправление ещё нужно проверить. Расследование инцидента легко превращается в часы ручной работы.
8 сентября в 20:00 МСК на открытом уроке «ИИ против бага: как разобрать инцидент в Python-проекте от логов до исправления» покажем, где в этом процессе действительно может помочь искусственный интеллект.
На практическом примере пройдём весь путь: проанализируем логи, сформулируем и проверим гипотезы, найдём проблемный участок кода, подготовим исправление и тесты. Вы увидите, как ускорять расследование с помощью ИИ, сохраняя контроль над результатом.
Урок будет полезен Python-разработчикам, знакомым с отладкой и анализом логов, и проходит в преддверии старта курса «ИИ для Python-разработчиков».
🤖Зарегистрируйтесь и разберите рабочий сценарий применения ИИ: https://vk.cc/d0TUT1
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru | 1 731 |
| 10 | 🐳 Docker выпустила Sandboxes - изолированные среды специально для AI coding agents.
Идея простая: дать агентам вроде Claude Code, Codex, Gemini CLI, Copilot CLI, OpenCode и Kiro больше свободы, но не давать им свободно ломать хост-систему.
Каждый агент запускается в отдельной microVM и получает только рабочую директорию проекта. Внутри он может:
- устанавливать пакеты;
- менять конфиги;
- запускать сервисы;
- поднимать собственные Docker-контейнеры;
- выполнять долгие задачи без постоянного подтверждения действий.
При этом Docker позволяет отдельно контролировать filesystem, network и credentials, а сам sandbox после работы можно просто удалить.
Это инфраструктурный слой для эпохи автономных coding agents: агенту дают почти полный контроль внутри песочницы, но хост остаётся изолированным.
https://www.docker.com/products/docker-sandboxes/
#Docker #AI #AIAgents #DevOps #Programming | 1 925 |
| 11 | Книги по Docker и DevOps
Скачивайте и читайте.
Docker без секретов
Автор: Сайбал Гош
Learn Docker in a Month of Lunches, 2nd Edition
Автор: Elton Stoneman
50 Kubernetes Concepts Every DevOps Engineer Should Know
Автор: Michael Levan
Docker. Вводный курс
Автор: Шон П. Кейн
Docker Deep Dive
Автор: Nigel Poulton
GitOps Cookbook. Kubernetes Automation in Practice
Автор: Natale Vinto
Безопасность контейнеров
Автор: Лиз Райс
Kubernetes для DevOps
Автор: Джон Арундел
Docker for Developers
Автор: Richard Bullington-McGuire
#docker #devops #подборка | 1 835 |
| 12 | 🐳 Docker полностью переписала слой виртуализации Docker Desktop
Новый Docker VMM вышел в public beta для macOS и Windows начиная с Docker Desktop 4.86. Раньше Desktop полагался на сторонний VMM, теперь Docker контролирует весь стек и может оптимизировать его именно под контейнерные нагрузки.
Что обещают на практике: более быстрый запуск контейнеров, заметно ускоренный file I/O между host и контейнером, возврат неиспользуемой RAM системе и более стабильную работу на Windows.
На Windows Docker отдельно заявляет сочетание изоляции уровня Hyper-V со скоростью, близкой к WSL2. Тот же движок уже используется в Docker Sandboxes, а дальше компания хочет построить единый runtime для ноутбуков, облака, on-prem и AI-агентов.
GA планируется на конец октября 2026 года, после чего Docker VMM должен стать движком по умолчанию для новых установок Docker Desktop на Mac, Windows и Linux.
https://www.docker.com/blog/docker-vmm-public-beta/ | 1 576 |
| 13 | 3 сайта, которые помогают создать, проверить или улучшить резюме и пройти ATS фильтр.
1. UpdateCV.me
Сервис для создания и улучшения IT-резюме, анализа его структуры и ATS-совместимости, сравнения с конкретной вакансией и адаптации под требования работодателя.
Можно загрузить готовое резюме или создать новое с помощью ИИ. Рекомендации только по делу в формате было-стало, пользователь сам решает, какие изменения принять.
2. NETWRK
Позволяет создать резюме с нуля, провести автоматический анализ, улучшить формулировки, адаптировать резюме под вакансию и подготовить сопроводительное письмо.
3. Сопровод
Помогает сравнить резюме с вакансией, найти недостающие навыки, адаптировать содержание и создать сопроводительное письмо для конкретного отклика.
Также есть трекер отправленных откликов.
#резюме #поискработы #карьера #hr | 1 891 |
| 14 | Как настроить Docker для автоматизированного тестирования
#читать #docker
Docker позволяет эффективно автоматизировать тестирование программного обеспечения, создавая виртуализированные среды с помощью контейнеров и интегрируя их с Selenium для параллельного выполнения тестов в разных браузерах.
Читать далее | 1 715 |
| 15 | Linux умеет запускать программы в почти контейнерной изоляции вообще без Docker.
За это отвечает `unshare`.
Команда создает для процесса отдельные namespace: свой список процессов, свой mount-view, hostname, IPC, network и user namespace. В итоге программа видит не всю систему, а только ограниченный «кусок» окружения.
Пример:
sudo unshare --pid --fork --mount --uts --ipc --net --user --map-root-user --mount-proc bash
Внутри новой shell можно выполнить:
ps aux
И вместо сотен процессов увидеть почти пустую систему: bash с PID 1 и сам ps.
Это не Docker, не container runtime и не магия. Это базовый механизм ядра Linux, на котором контейнеры во многом и построены.
Полезно знать, если хотите понимать контейнеры не как «черный ящик», а на уровне того, что реально делает kernel. | 2 105 |
| 16 | Docker-совет для миграции
Не переносите контейнер через docker save как единственный способ. Так вы сохраните image, но потеряете важное:
- volumes
- env-переменные
- networks
- ports
- restart policy
- bind mounts
Лучше сначала восстановить docker-compose.yml из уже запущенного контейнера:
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/red5d/docker-autocompose \
container_name
Потом на новом сервере запускаете уже нормально:
docker compose up -d
А данные из volume переносите отдельно через tar.
Мигрировать нужно не контейнер, а всё состояние запуска. Image можно скачать заново, а вот volumes, env и настройки запуска - именно там обычно ломается прод. | 2 111 |
| 17 | 4 MCP-сервера, о которых стоит знать каждому DevOps-инженеру
1. Kubernetes MCP
- расследовать pod’ы в CrashLoopBackOff;
- дебажить неудачные деплои;
- анализировать состояние кластера.
Repo:
https://github.com/Flux159/mcp-server-kubernetes
2. AWS MCP
- разбирать резкие скачки расходов в AWS;
- находить неиспользуемые ресурсы;
- troubleshooting облачной инфраструктуры.
Repo:
https://github.com/awslabs/mcp
3. Terraform MCP
- проверять Terraform-планы;
- находить drift в инфраструктуре;
- объяснять изменения в инфраструктуре.
Repo:
https://github.com/hashicorp/terraform-mcp-server
4. Grafana + Prometheus MCP
- расследовать скачки latency;
- анализировать production-инциденты;
- объяснять alert storms.
Repos:
https://github.com/grafana/mcp-grafana
https://github.com/pab1it0/prometheus-mcp-server
ИИ может получать доступ к вашей инфраструктуре, понимать, что реально происходит, и помогать разбирать проблемы на основе настоящих данных, а не догадок. | 2 129 |
| 18 | 🎥 Вебинар по Kubernetes: K8S + Vault — как получать секреты?
Как безопасно управлять чувствительными данными в Kubernetes-кластере? На этом открытом уроке вы узнаете, как организовать надёжное и масштабируемое взаимодействие между Kubernetes и HashiCorp Vault — популярным инструментом для управления секретами.
Мы разберёмся, почему стандартные Kubernetes-секреты не всегда комфортны для использования, какие риски существуют и как их можно минимизировать с помощью подхода dynamic secrets. Основное внимание будет уделено External Secrets Operator — инструменту, который позволяет безопасно забирать секреты из Vault (и других хранилищ) и интегрировать их в кластер.
📌 На уроке вы узнаете:
- Как Kubernetes работает с секретами по умолчанию, и в чём его ограничения;
- Какие существуют способы интеграции Kubernetes и Vault;
- Что такое External Secrets Operator и почему его всё чаще выбирают для production-сред;
- Пошаговая схема подключения Vault к K8s;
- Практические примеры и best practices для безопасной и автоматизированной работы с секретами.
🎯 После вебинара вы:
- Поймёте, какие уязвимости есть в стандартном механизме Kubernetes-секретов;
- Сможете настроить интеграцию Vault с Kubernetes;
- Узнаете, как использовать External Secrets Operator для безопасного управления секретами;
- Получите шаблоны и примеры манифестов, которые можно адаптировать под свои проекты.
⚠ Открытый урок проходит в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes».
👉 Для участия зарегистрируйтесь: https://clck.su/eAiJI
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru | 1 564 |
| 19 | Оффер редко приходит сам. Обычно между «без работы» и «оффер получен» стоят десятки откликов, доработок резюме и часов поиска.
Talanto.work помогает пройти этот путь быстрее:
🟠 50 000+ IT-вакансий с разных сайтов
🟠 Telegram-бот с уведомлениями по вашим фильтрам
🟠 Проверка резюме и рекомендации по улучшению
🟠 Проверка соответствия резюме конкретной вакансии
🟠 Генератор персональных сопроводительных писем
Ищите работу не дольше. Ищите эффективнее. | 1 310 |
| 20 | 🧠 Docker-совет: не копируй весь проект в image слишком рано
Одна из частых ошибок в Dockerfile:
COPY . .
RUN npm install
или:
COPY . .
RUN go mod download
Проблема в том, что Docker cache ломается при любом изменении любого файла.
Поменял README, тест, конфиг или один исходник — слой COPY . . изменился, значит зависимости снова скачиваются и билд становится медленным.
Правильный подход: сначала копировать только dependency manifest, установить зависимости, а уже потом копировать остальной код.
Для Node.js:
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
Для Go:
COPY go.mod go.sum ./
RUN go mod download
COPY . .
Для Python:
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
Так Docker будет переиспользовать слой с зависимостями, пока реально не изменились package-lock.json, go.sum или requirements.txt.
Ещё сильнее помогает .dockerignore.
Туда стоит добавить:
.git
node_modules
dist
build
coverage
.env
*.log
Итог: меньше контекста, меньше лишних invalidated layers, быстрее CI/CD, стабильнее кеши.
Хороший Dockerfile - это не просто “собрать image”.
Это управлять слоями так, чтобы сборка не начиналась с нуля при каждом чихе. | 1 443 |
