Docker простыми словами
6.31K subscribers
254 photos
30 videos
3 files
155 links
Сообщество по докеру.

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

Открыты к критике и ждем вашего фидбека.
@viktorreh @anothertechrock
Download Telegram
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👍1
Безопасность контейнеров

Автор:
Лиз Райс
Год издания:
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
👍31
Вопросы которые иногда могут за дать по dockery на любом собеседовании программиста или тестировщика:

Смотреть

Часть 2
👍5
Kubernetes для DevOps

Автор:
Джон Арундел
Год издания:
2020

#kubernetes #devops #ru

Скачать книгу
🐳 Docker tip — неочевидная, но мощная оптимизация

Если ты часто пересобираешь образы, разделяй слои по логике: зависимости — отдельно, код — отдельно.
Так Docker сможет использовать кеш и не пересобирать всё с нуля при каждом изменении.

Например 👇

Плохой Dockerfile:


FROM python:3.11
COPY . /app
RUN pip install -r /app/requirements.txt
CMD ["python", "app.py"]


Каждое изменение кода пересобирает и зависимости.

Оптимальный вариант:


FROM python:3.11
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]


Теперь при изменении кода пересобирается только последний слой -время сборки сокращается в 5–10 раз, а CI становится мгновенным.

💡 Совет:

Добавь .dockerignore, чтобы не тащить в образ кеши, .git, логи и прочий мусор - это уменьшит размер и ускорит билд.
👍9👏3
Docker без секретов

Автор: Сайбал Гош
Год издания: 2023

#docker #ru

Скачать книгу
🔥3🤔2👨‍💻1
Start using Docker!

What is docker?
Docker is a platform that allows developers to package, deploy and run applications in isolated environments.

What is a Docker image?
A Docker image is a read only template that contains a set of instructions for creating a container that can run on the Docker platform.

What is a docker container?
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.

What is the difference between Docker image & Docker container?
An image is a read only template with code and dependencies while a container is a running instance of an image that provides an isolated environment for an application to run.

Where can Docker be used?
Docker can be used to build and deploy applications in various environments including development, testing, staging and production(across different operating systems and cloud platforms).

Наш докер чатик 🐬

#команды
2
Learn Docker in a Month of Lunches, 2nd Edition

Автор: Elton Stoneman
Год издания: 2025

#docker #en

Скачать книгу
🔥41🤔1
Big Data on Kubernetes

Автор: Neylson Crepalde
Год издания: 2024

#kubernetes #en

Скачать книгу
🤔2🔥1
Программирование Cloud Native

Автор: Иван Портянкин
Год издания: 2020

#docker #ru

Скачать книгу
Короткий, но реально полезный приём для работы с Docker 👇


docker run --rm -it -v $(pwd):/app -w /app python:3.11 bash


💡 Что делает:


--rm — контейнер удаляется сразу после выхода (чисто, без мусора)

-v $(pwd):/app — монтирует текущую папку внутрь контейнера

-w /app — задаёт рабочую директорию

python:3.11 — базовый образ

bash — запускает интерактивную оболочку


📦 Зачем нужно:
Позволяет моментально войти в окружение Python (или любого другого образа) без Dockerfile, просто чтобы протестировать код, команду или библиотеку.
Рабочие файлы остаются на хосте, мусора — ноль.

🔥 Трюк работает с любыми образами:


docker run --rm -it -v $(pwd):/src -w /src golang:1.22 bash
docker run --rm -it -v $(pwd):/app node:20 bash
🔥10