DevOps Docker
admin - @workakkk Погружаемся в Docker https://t.me/+0WdB4uvOwCY0Mjdi - ссылка на канал ркн: № 6766050539
نمایش بیشتر📈 تحلیل کانال تلگرام DevOps Docker
کانال DevOps Docker در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 15 609 مشترک است و جایگاه 8 305 را در دسته فناوری و برنامهها و رتبه 42 640 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 15 609 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 29 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -110 و در ۲۴ ساعت گذشته برابر -3 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 21.57% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 10.57% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 3 367 بازدید دریافت میکند. در اولین روز معمولاً 1 650 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 14 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند docker, контейнер, build, сборка, devops تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“admin - @workakkk
Погружаемся в Docker
https://t.me/+0WdB4uvOwCY0Mjdi - ссылка на канал
ркн: № 6766050539”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 30 ژوئن, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
docker commit app backup
Это снимок хаоса: внутри могут быть временные файлы, старые логи, секреты и непонятное состояние процесса.
Правильнее сохранять 4 вещи:
• docker-compose.yml
• .env.example без секретов
• дампы данных: pg_dump, mysqldump, redis-cli save
• версии образов через digest, а не просто latest
Пример:
docker image inspect app:prod \
--format='{{index .RepoDigests 0}}'
Главная мысль: бэкап ценен только тогда, когда ты можешь поднять проект с нуля на новой машине.
Контейнеры одноразовые.
Данные и инструкция восстановления — нет.depends_on сам по себе ждёт только старт контейнера, а не готовность базы.
Правильнее делать так:
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 3s
retries: 10
migrate:
image: myapp
command: npm run migrate
depends_on:
db:
condition: service_healthy
app:
image: myapp
depends_on:
migrate:
condition: service_completed_successfully
Идея простая:
1. Сначала реально поднимается база
2. Потом отдельный контейнер накатывает миграции
3. Только после успешных миграций стартует приложение
Так ты убираешь рандомные ошибки вида:
connection refused
relation does not exist
database is starting up
Особенно полезно для CI, staging и локальной разработки, где контейнеры часто стартуют с нуля.
Маленькая деталь, которая делает Docker-сетап сильно взрослее.
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”.
Это управлять слоями так, чтобы сборка не начиналась с нуля при каждом чихе.Переход в облако дает бизнесу гибкость и скорость, но без продуманного подхода к управлению затратами может обернуться непредвиденными расходами. Когда инфраструктура растет, даже небольшие изменения в потреблении начинают заметно влиять на бюджет.На вебинаре 25 июня эксперты Cloud.ru расскажут, как с помощью бизнес‑практик и встроенных инструментов сделать расходы на облако прозрачнее, грамотно распределять ресурсы между командами и выстроить эффективное управление затратами без ограничений для разработки. Вы узнаете:
▶️
почему важно назначать владельца каждому облачному ресурсу;
▶️
где скрываются неиспользуемые ресурсы и как автоматически находить их и устранять с помощью инструментов Cloud․ru;
▶️
какие сценарии чаще всего приводят к перерасходу бюджета и как держать их под контролем с помощью лимитов и квот;
▶️
как эффективно использовать FinOps инструменты Cloud․ru для мониторинга расходов, настройки алертов и автоматизации контроля затрат;
▶️
как сократить расходы на облако на 20–30 % за счет правильного выбора тарифов и оценки стоимости сервисов на этапе планирования и разработки.👉 Зарегистрироваться 👈
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
ИИ может получать доступ к вашей инфраструктуре, понимать, что реально происходит, и помогать разбирать проблемы на основе настоящих данных, а не догадок.
du -sh /* 2>/dev/null | sort -rh | head -10
Что делает команда:
du -sh /* считает размер всех директорий в корне
2>/dev/null убирает ошибки доступа из вывода
sort -rh сортирует по размеру от большего к меньшему
head -10 показывает 10 самых тяжёлых папок
Дальше заходите в самую подозрительную директорию и повторяете команду уже внутри неё:
cd /var
du -sh * 2>/dev/null | sort -rh | head -10
Так можно быстро понять, что съело диск: логи, 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 и настройки запуска - именно там обычно ломается прод.▶️почему ИИ-пилоты «не взлетают»: разрозненные инструменты, простой GPU и не только; ▶️во сколько обходится ML на самом деле: почему затраты GPU — это только вершина айсберга и куда ещё уходят деньги; ▶️облако, open source своими руками и готовое решение — чем отличаются три пути к ML-платформе и какие скрытые ловушки есть у каждого; ▶️on-premise vs. облако: когда локальное развёртывание дешевле и почему это не всегда так; ▶️в каких отраслях on-premise ML-платформа необходима и какие бизнес-сценарии можно реализовать с её помощью; ▶️из чего состоит и как устроена Evolution Stack.ML; ▶️зачем нужны воркспейсы.Бонус: на вебинаре покажут, как создавать вокспейс на платформе, подключать внешние источники данных и запускать Jupyter Server на базе готового образа. Зарегистрироваться
docker system prune -a
И иногда случайно сносит половину полезного кеша.
Более аккуратный способ - сначала посмотреть, что именно занимает место:
docker buildx du
Команда показывает размер build cache по builder'ам: какие слои занимают больше всего, что можно удалить, а что ещё используется.
Особенно полезно на машинах, где часто собираются образы через BuildKit, CI, multi-stage Dockerfile и разные архитектуры.
Мини-шпаргалка:
docker buildx du
показать размер кеша сборки
docker buildx du --verbose
увидеть подробности по записям кеша
docker builder prune
удалить неиспользуемый build cache
docker builder prune --filter until=24h
удалить кеш старше 24 часов
docker builder prune --keep-storage 20GB
очистить кеш, но оставить до 20 ГБ полезного хранилища
docker system df
посмотреть общий расход места: образы, контейнеры, volumes, build cache
Главный нюанс: docker system prune чистит широко, а docker builder prune бьёт именно по кешу сборки. Для dev-машины и CI это часто безопаснее и предсказуемее.
Если Docker внезапно занял 80 ГБ, не начинайте с ядерной кнопки. Сначала проверьте build cache.COPY --link в Dockerfile, чтобы ускорять rebuild и не ломать cache chain.
Обычно COPY создаёт слой, который зависит от предыдущих слоёв. Если выше что-то изменилось, Docker часто пересобирает цепочку дальше, даже когда сами файлы не поменялись.
С COPY --link копируемые файлы попадают в отдельный независимый слой:
# syntax=docker/dockerfile:1.7
FROM golang:1.23 AS build
WORKDIR /app
COPY --link go.mod go.sum ./
RUN go mod download
COPY --link . .
RUN go build -o app ./cmd/app
Где реально помогает:
большие монорепы;
частые изменения базового образа;
CI/CD с BuildKit cache;
multi-stage сборки;
ситуации, где COPY . . постоянно инвалидирует лишние слои.
Плюс: BuildKit может переиспользовать слой с файлами даже при изменениях в предыдущих слоях.
Минус: COPY --link не умеет следовать за symlink в destination path. Но для большинства production Dockerfile это не проблема. async Task<IActionResult> пишется на автомате. Вы точно знаете, почему EF Core сгенерировал именно такой SQL - и как переписать запрос, чтобы он летал.
Это не фантазия. Это результат после 16 модулей, в которых каждая концепция объясняется через код и закрепляется практикой.
ООП, SOLID, LINQ, async/await, DI, EF Core, ASP.NET Core, Docker, Kubernetes - всё, что казалось магией, станет рабочим инструментом.
А бонусом - портфолио проектов: от CLI-утилит и REST API до собственного SaaS с multi-tenancy, JWT и деплоем в Kubernetes под TLS.
Скидка - 58% доступна 48 часов: https://stepik.org/a/282984/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.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
