en
Feedback
Docker простыми словами

Docker простыми словами

Open in Telegram

Сообщество по докеру. Рассказываем про docker и его применение в программировании и тестировании. Открыты к критике и ждем вашего фидбека. @viktorreh @anothertechrock

Show more
6 300
Subscribers
+124 hours
+17 days
No data30 days
Attracting Subscribers
Oct '26
October '26
+8
in 0 channels
September '26
+55
in 0 channels
Get PRO
August '26
+56
in 0 channels
Get PRO
July '26
+63
in 2 channels
Get PRO
June '26
+35
in 0 channels
Get PRO
May '26
+32
in 0 channels
Get PRO
April '26
+45
in 0 channels
Get PRO
March '26
+48
in 0 channels
Get PRO
February '26
+44
in 0 channels
Get PRO
January '26
+158
in 1 channels
Get PRO
December '25
+79
in 2 channels
Get PRO
November '25
+39
in 0 channels
Get PRO
October '25
+60
in 0 channels
Get PRO
September '25
+125
in 1 channels
Get PRO
August '25
+81
in 0 channels
Get PRO
July '25
+108
in 0 channels
Get PRO
June '25
+127
in 0 channels
Get PRO
May '25
+377
in 9 channels
Get PRO
April '25
+116
in 2 channels
Get PRO
March '25
+96
in 0 channels
Get PRO
February '25
+248
in 2 channels
Get PRO
January '25
+495
in 8 channels
Get PRO
December '24
+56
in 1 channels
Get PRO
November '24
+54
in 2 channels
Get PRO
October '24
+113
in 3 channels
Get PRO
September '24
+442
in 15 channels
Get PRO
August '24
+70
in 0 channels
Get PRO
July '24
+176
in 2 channels
Get PRO
June '24
+372
in 7 channels
Get PRO
May '24
+1 106
in 21 channels
Get PRO
April '24
+4 231
in 25 channels
Date
Subscriber Growth
Mentions
Channels
05 October+1
04 October+1
03 October+1
02 October+1
01 October+4
Channel Posts
🐳 Как устроен Docker: что происходит «под капотом» Поговорим немного про базу. Docker — одно из самых популярных средств кон
🐳 Как устроен 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: ИИ-агент для работы с 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-инженера на основные категории и
Из вашего резюме вообще понятно, что вы умеете как DevOps-инженер? Мы разбили работу DevOps-инженера на основные категории и сделали чекер, который показывает, какие из них в вашем резюме раскрыты хорошо, частично или почти не видны. Опыт может быть - но по резюме этого не видно. Проверь бесплатно и без регистрации: https://updatecv.me/devops-resume-checker А полный анализ резюме с правками доступен на: https://updatecv.me
1 158
4
🐳 Docker-образ с 3,17 ГБ до 354 МБ - почти в 9 раз меньше Такая оптимизация обычно достигается не одной магией, а нескольким
🐳 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 Сервис замедлился, соединения обрываются, а привычные показатели указывают только н
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` 🐳 Когда контейнеру нужен интерактивный 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 Скачать книгу
Безопасность контейнеров Автор: Лиз Райс Год издания: 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
🐳 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 полностью переписала слой виртуализации 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 позволяет эффективно автоматизировать тестир
Как настроить Docker для автоматизированного тестирования #читать #docker Docker позволяет эффективно автоматизировать тестирование программного обеспечения, создавая виртуализированные среды с помощью контейнеров и интегрируя их с Selenium для параллельного выполнения тестов в разных браузерах. Читать далее
1 715
15
Linux умеет запускать программы в почти контейнерной изоляции вообще без Docker. За это отвечает `unshare`. Команда создает д
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; - деб
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: 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