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

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

@justdocker

Сообщество по докеру.

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

Открыты к критике и ждем вашего фидбека.
@viktorreh @anothertechrock
Subscribers
6.3K
Photos
276
Videos
30
Links
178

Showing posts older than #601 · Back to latest

Older Posts 17 shown
Post #600 2.17K
Книги по 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

Микросервисы и контейнеры Docker
Автор: Парминдер Сингх Кочер

Безопасность контейнеров
Автор: Лиз Райс

Kubernetes для DevOps
Автор: Джон Арундел

Docker for Developers
Автор: Richard Bullington-McGuire

Docker на практике
Автор: Ian Mill

#docker #devops #подборка
Telegram Docker простыми словами Docker без секретов Автор: Сайбал Гош Год издания: 2023 #docker #ru Скачать книгу
  • 👍 8
Post #598 1.89K
🖥 Sidekick — инструмент командной строки для быстрого развёртывания приложений на VPS.

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

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

🖥 Github
  • 👍 3
  • ❤ 1
Post #597 1.89K
Безопасность контейнеров

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

#devops #ru

Скачать книгу
  • 🤔 1
Post #596 1.65K

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 😛
  • 💩 2
  • 👍 1
Post #591 1.99K
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
  • 🔥 4
  • ❤ 1
Post #590 1.52K
🛠 Go-инструмент для sanity-проверок контейнеров - крошечный бинарник и ноль зависимостей.

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

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

#golang

@Golang_google
  • 🔥 2
Post #589 2.1K
Большой тест по Docker для новичков из 85 вопросов - https://qarocks.ru/test_post/big-docker-quiz/

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

P.S если найдете ошибки в ответах, присылайте попросим исправить)
  • 🐳 1
Post #588 2.15K
🐳 Шпаргалка по сетям 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
  • 👍 5
  • ❤ 3
Post #587 2.46K
🐋 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
  • ❤ 1
Post #586 2.79K
Post #585 2.49K
🚀 Удобный дашборд для Docker-контейнеров

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

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

📌 GitHub: https://github.com/dockpeek/dockpeek
  • 👌 1
Post #583 1.91K
🐳 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
→ Решение для постоянного хранения данных контейнеров.
→ Позволяет сохранять данные между перезапусками контейнеров.
  • 👍 11
  • ❤ 4
Post #582 2.02K
🚀 Docker Time Machine - необычный инструмент для экспериментов с контейнерными конфигурациями

Проект позволяет «перематывать время» в Docker окружении:
вы можете сохранять состояние, переключаться между снимками и тестировать изменения без боли отката или пересборки всего окружения.

Зачем это может быть полезно:
• быстрый rollback при тестировании
• сравнение конфигураций и зависимостей
• воспроизведение окружений для баг-репродукции
• создание учебных сценариев и демонстраций

Интересная идея для тех, кто активно работает с контейнерами и экспериментирует с конфигурациями.

🔗 Репозиторий: https://github.com/jtodic/docker-time-machine
  • ❤ 4
  • 👍 2
Post #581 2.58K
🐳 Полезный, но не банальный Docker-совет

Если ты запускаешь контейнеры в проде или CI/CD - никогда не полагайся только на `latest` тег.
Вместо этого всегда фиксируй версии по SHA-digest, а не по тегам образов.

Вот почему 👇

🔹 Тег latest может поменяться в любой момент — образ обновится, а твой контейнер внезапно поведёт себя по-другому.
🔹 Даже фиксированные теги (1.21, 3.10 и т.п.) не гарантируют стабильность — кто-то мог пересобрать их с новыми зависимостями.
🔹 Digest (sha256:...) — это точный отпечаток конкретного образа, который гарантирует, что в проде и CI запустится один и тот же код.

Пример безопасного запуска:

docker pull python@sha256:bcfb1c7d1c21f0c84793e9...
docker run python@sha256:bcfb1c7d1c21f0c84793e9... python app.py


💡 Так ты избежишь непредсказуемых багов, когда образ “вдруг” стал другим — особенно важно для CI/CD и продакшена.
  • 👍 12
Post #580 2.34K
🖥 На Stepik вышел курс, который учит работать с Docker на реальных проектах.

Владение Docker - навык, который отличает новичка от профи,

Сегодня почти всё разворачивается в контейнерах.

Если ты не умеешь работать с Docker, ты медленнее, зависим от чужих настроек и постоянно ловишь баги «у меня локально работает».

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

Только практика и реальные кейсы от авторов Docker Академии- с нуля до уверенного уровня.

🎁 Скидка 40 процентов действует 48 часов


👉 Записывайся и сделай Docker своим настоящим рабочим инструментом.
  • ❤ 5
  • 👍 4
  • 🔥 4
  • 🥰 1
  • 💩 1
Post #579 2.27K
🐬 ТОП-9 Docker-контейнеров для VPS


1️⃣ Nginx – универсальный веб-сервер и прокси
docker run -d -p 80:80 -p 443:443  
-v /path/to/config:/etc/nginx/conf.d
nginx:alpine



2️⃣ PostgreSQL – надёжная база данных
version: '3.8'
services:
db:
image: postgres:15
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: strongpassword
POSTGRES_DB: appdb
volumes:
- ./pgdata:/var/lib/postgresql/data
restart: always



3️⃣ Redis – кэш и брокер сообщений
docker run -d --name redis -p 6379:6379 redis:alpine



4️⃣. Grafana – визуализация данных
grafana:
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- ./grafana:/var/lib/grafana
restart: always



5️⃣ Prometheus – мониторинг и алертинг
prometheus:
image: prom/prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
restart: always



6️⃣ WordPress – CMS для сайтов
wordpress:
image: wordpress
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: admin
WORDPRESS_DB_PASSWORD: strongpassword
WORDPRESS_DB_NAME: appdb
volumes:
- ./wp-content:/var/www/html/wp-content



7️⃣ Nextcloud – облачное хранилище
nextcloud:
image: nextcloud
ports:
- "8081:80"
volumes:
- ./nextcloud:/var/www/html



8️⃣ Portainer – управление контейнерами
docker run -d -p 9000:9000 
-v /var/run/docker.sock:/var/run/docker.sock
portainer/portainer-ce


9️⃣ Traefik – современный прокси с автонастройкой
traefik:
image: traefik:v2.10
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.yml:/etc/traefik/traefik.yml


Наш Docker чатик
🐬
Telegram Docker чат. Чат по докеру You’ve been invited to join this group on Telegram.
  • ❤ 4
  • 🔥 4
  • 🫡 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →