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

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

Открыты к критике и ждем вашего фидбека.
@viktorreh @anothertechrock
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🐳 8 ключевых концепций Docker, которые должен знать каждый разработчик

Освоение этих основ — первый шаг к DevOps-грамотности и созданию production-ready систем.

Разберёмся подробнее 👇

6️⃣ Docker Image
→ Read-only образ, содержащий код приложения, окружение и зависимости.
→ Можно представить как чертёж для контейнеров.

2️⃣ Docker Container
→ Запущенный экземпляр Docker-образа.
→ Изолированный, лёгкий, воспроизводимый — идеален для переносимости.

3️⃣Dockerfile
→ Текстовый файл с пошаговыми инструкциями для сборки образа.
→ Автоматизирует процесс сборки.

4️⃣ Docker CLI
→ Инструмент командной строки для взаимодействия с Docker.
→ Основные команды: docker run, docker build, docker exec.

5️⃣ Docker Compose
→ Инструмент для запуска многоконтейнерных приложений через docker-compose.yml.
→ Отлично подходит для микросервисов и локальных окружений.

6️⃣ Docker Registry
→ Репозиторий для хранения и распространения Docker-образов.
→ Публичный (Docker Hub) или приватный (Harbor, GitHub Packages).

7️⃣ Docker Networks
→ Механизм, который позволяет контейнерам безопасно взаимодействовать друг с другом.
→ Используйте режимы bridge, host или overlay в зависимости от задачи.

8️⃣Docker Volume
→ Решение для постоянного хранения данных контейнеров.
→ Позволяет сохранять данные между перезапусками контейнеров.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94
Почему кубернетизация затягивается? ⚙️

Нестабильные сборки, дрейф конфигураций и неудачные чарты превращают подготовку приложения к Kubernetes в долгий и непредсказуемый процесс.

На вебинаре 23 января в 17:00 разберём, как выстроить воспроизводимый workflow и ускорить запуск приложений в кластере.

Вы узнаете:
— какие данные нужно уточнить до начала работ;
— как оптимизировать билд образов;
— какие практики использовать при подготовке Helm-чартов;
— что проверить при запуске приложения в кластере;
— какие элементы включать в ревью.

Приходите — покажем рабочие подходы, которые помогают сокращать время вывода изменений в продакшен.

👉 Зарегистрироваться
23 января в 17:00 (МСК) | Онлайн

🎁 Все участники получат практический PDF-гайд по ревью кубернетизации.
💩1
🚀 Удобный дашборд для Docker-контейнеров

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

🚀 Основные моменты:
- Мгновенный обзор всех запущенных контейнеров и их портов
- Интеграция с Traefik для автоматического отображения адресов
- Простой доступ к веб-интерфейсам контейнеров
- Поддержка управления несколькими Docker-хостами
- Никакой конфигурации не требуется, работает сразу

📌 GitHub: https://github.com/dockpeek/dockpeek
👌1
🐋 Docker-совет: используйте `HEALTHCHECK` не только для статуса, но и как скрытый «авто-рестарт триггер» для сложных сервисов.

Фишка:
HEALTHCHECK может выполнять скрипт, который проверяет не только, жив ли процесс, но и корректно ли работает ваш сервис (доступ к БД, состояние очередей, ответ API, время отклика и т.п.).

Если HEALTHCHECK начинает возвращать EXIT 1, Docker помечает контейнер как unhealthy.
А если контейнер запущен через --restart=always или в оркестраторе - он автоматически пересоздаётся как при аварии.

Пример:
HEALTHCHECK может «ловить» зависшие соединения, мёртвые воркеры или блокировки, которые сам процесс не считает фатальными — но которые ломают приложение.

Мини-пример:

HEALTHCHECK --interval=30s --timeout=5s
CMD curl -f http://localhost:8080/health || exit 1


Зачем это нужно:
- Автоматически перезапускает контейнер при внутренних зависаниях, а не только при краше.
- Позволяет держать сервисы «самоочищающимися».
- Часто заменяет костыльные cron-перезапуски.

Обычно HEALTHCHECK используют просто «чтобы было», но при правильной настройке это мощный инструмент самовосстановления.
👍7
🐳 Шпаргалка по сетям Docker

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

Основные типы сетей

• Bridge — сеть по умолчанию.

Контейнеры получают внутренний IP и могут общаться друг с другом. Для связки нескольких сервисов в одной среде лучше создавать свои пользовательские сети (docker network create). Тогда контейнеры будут доступны по имени, например ping db.

• Host — общая сеть с хостом.

Контейнер не имеет отдельного IP: он использует сетевой стек машины. Это снижает изоляцию, но убирает накладные расходы на маршрутизацию. Подходит для сервисов, где важна скорость.

• None — полная изоляция.

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

• Overlay — сеть для кластера.

Объединяет несколько Docker-хостов. Используется в Swarm и Kubernetes. Контейнеры на разных серверах работают так, будто они рядом.

• Macvlan — контейнер как полноценный участник LAN.

Контейнер получает MAC-адрес и «выглядит» в локальной сети как отдельное устройство. Это удобно, если требуется доступ из реальной сети напрямую, например для IoT или legacy-приложений.

Полезные команды

Список сетей:
docker network ls

Подробная информация о сети:
docker network inspect bridge
Создать сеть:
docker network create mynet
Удалить сеть:
docker network rm mynet
Подключить контейнер к сети:
docker network connect mynet app1
Отключить контейнер от сети:
docker network disconnect mynet app1
👍42
Большой тест по Docker для новичков из 85 вопросов - https://qarocks.ru/test_post/big-docker-quiz/

Проходите и пишите у кого 85 из 85:)

P.S если найдете ошибки в ответах, присылайте попросим исправить)
🐳1
This media is not supported in your browser
VIEW IN TELEGRAM
🛠 Go-инструмент для sanity-проверок контейнеров - крошечный бинарник и ноль зависимостей.

Если нужно быстро проверить контейнер перед деплоем, без тяжёлых тулов и образов - preflight как раз про это. Написан на Go, работает автономно, можно встроить в CICD или локальную диагностику.

🔗 https://github.com/vertti/preflight

#golang

@Golang_google
🔥2
Docker Volumes & Data Persistence

→ Контейнеры по умолчанию временные, их данные исчезают после остановки или удаления.
→ Docker даёт механизмы для постоянного хранения, чтобы данные переживали перезапуски.
→ Самый надёжный способ - использовать Docker volumes.

1. Почему важна устойчивость данных

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

2. Варианты хранилищ в Docker

a) Volumes
→ Управляются Docker.
→ Хранятся в /var/lib/docker/volumes/.
→ Не зависят от контейнеров.
→ Лучший выбор для БД и долгоживущих данных.

b) Bind Mounts
→ Привязывают локальную директорию хоста к контейнеру.
→ Удобно в разработке.
→ Менее переносимые.

c) tmpfs Mounts
→ Данные только в памяти.
→ Очень быстрые, но непостоянные.
→ Для временных и чувствительных данных.

3. Что такое Docker Volume

→ Это область постоянного хранения, управляемая Docker.
→ Не удаляется при удалении контейнера.
→ Можно безопасно шарить между контейнерами.

Создать volume:

docker volume create mydata


Использовать:


docker run -v mydata:/app/data nginx


Посмотреть:

docker volume inspect mydata

4. Типы Volumes

a) Named Volumes
→ Создаются вручную.
→ Чистая изоляция от файлов системы хоста.
→ Лучший вариант для продакшена.

b) Anonymous Volumes
→ Без имени.
→ Могут удаляться вместе с контейнером.
→ Для временных задач.

5. Преимущества Docker Volumes

→ Данные переживают рестарты.
→ Легко бэкапить и переносить.
→ Работают при обновлении контейнеров.
→ Можно шарить между контейнерами.
→ Docker оптимизирует хранение под производительность.

6. Bind Mounts

→ Позволяют смонтировать директорию хоста:


docker run -v /host/path:/container/path myapp



→ Удобно в разработке (горячая перезагрузка кода).
→ В продакшене использовать аккуратно.

7. Persistency в Docker Compose

Compose автоматически управляет volumes.

Пример:

services:
db:
image: postgres
volumes:
- pgdata:/var/lib/postgresql/data

volumes:
pgdata:


→ База сохраняет данные между перезапусками.

8. Бэкап и восстановление Volumes

Бэкап:

docker run --rm -v mydata:/data -v $(pwd):/backup alpine tar czvf /backup/backup.tar.gz /data


Восстановление:

docker run --rm -v mydata:/data -v $(pwd):/backup alpine tar xzvf /backup/backup.tar.gz -C /


9. Как выбрать способ хранения

→ Volumes - лучший вариант для продакшена.
→ Bind mounts - для разработки.
→ tmpfs - для временных и быстрых операций.

Quick tip

→ Docker volumes - основа устойчивости данных.
→ Даёт гибкость, скорость и надёжность.
→ Незаменимы для баз данных, stateful-сервисов и реальных продакшен-приложений.```
👍4🔥3
Oracle on Docker

Автор: Sean Scott
Год издания: 2023

#docker #en

Скачать книгу
🤔21
Forwarded from KazDevOps
🗣Внимание, конкурс!

Разыгрываем 7 ваучеров на обучение и сертификацию со скидкой 100% от The Linux Foundation, а также 7 доступов к видеокурсу Kubernetes: База от Slurm.

🟣 Каталог электронных курсов и сертификации

Ваучеры можно применить к любому:

— онлайн-курсу
— сертификационному экзамену (CKA, CKS, CKAD и другие — в комплекте!)
— или пакету (курс + сертификация)

🟣 Курс Kubernetes: База от Slurm.

Условия розыгрыша просты: 🔵 Подпишитесь на KazDevOps и жми кнопку "Учавствую!" под оригинальным постом в канале KazDevOps.

🚩 29 января подведем итоги и выберем 7 победителей. Каждый победитель получит ваучер + доступ к курсу от Slurm. Активировать ваучеры нужно до 07.01.2027. После этого у вас будет 1 год и 2 попытки, чтобы завершить обучение и сдать экзамен.

Go-go-go, и успехов!

@DevOpsKaz 😛
Please open Telegram to view this post
VIEW IN TELEGRAM
💩2
Безопасность контейнеров

Автор:
Лиз Райс
Год издания:
2021

#devops #ru

Скачать книгу
🤔1
🖥 Sidekick — инструмент командной строки для быстрого развёртывания приложений на VPS.

💡 Sidekick позволяет настроить сервер, запустить контейнеры из Dockerfile с балансировкой нагрузки и автоматическим SSL, поддерживает деплой без простоев, управление доменами и интеграцию SOPS для защиты данных. Он позиционируется как альтернатива Fly.io, подходящая для самостоятельного хостинга проектов на VPS с Ubuntu, делая его более доступным и экономичным.

🔐 Лицензия: GPL-3.0

🖥 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Развертывание «Штурвала 2.12.1» под таймер

Разработчики из «Лаборатории Числитель» выкатили новый релиз, в котором исправления затронули процедуры обновления кластеров, работу графического интерфейса, создание и удаление кластеров на разных провайдерах.

5 февраля в 11:00 на вебинаре ребята пройдут весь процесс инсталляции в графическом интерфейсе на oVirt (zVirt, ROSA Virtualization, РЕД Виртуализация) в режиме реального времени.

Для кого вебинар: DevOps-инженеров и архитекторов, разработчиков, специалистов служб эксплуатации.

📌 Зарегистрироваться
💩1
Вопросы которые иногда могут за дать по dockery на любом собеседовании программиста или тестировщика:

Смотреть

Часть 2
👍5