Найти в Дзене
bashninja | DevOps & SRE ⚙️

⚡️ S02E01 — Docker с нуля: чем он отличается от виртуальной машины и как им пользоваться

⚡️ S02E01 — Docker с нуля: чем он отличается от виртуальной машины и как им пользоваться ━━━━━━━━━━━━━━━━━━ Привет, родные 👋 Виртуальная машина — это отдельная операционная система, запущенная внутри вашей основной. Свои процессы, свои настройки, изоляция как у «компа в компе». Docker — это «контейнер с приложением»: берёт ядро у хоста, тащит только нужные зависимости и взлетает за секунды. Итог простой: виртуальная машина — тяжёлая броня; контейнер — лёгкая куртка. Для локалки, стендов и CI — самое оно. ━━━━━━━━━━━ 🎯 Зачем это тебе ━━━━━━━━━━━ — Запускаешь сервис одинаково на ноуте и на сервере. — Меньше «у меня не работает» из-за разных окружений. — Можно экспериментировать без страха: поднял → проверил → снёс → чисто. ━━━━━━━━━━━ 📦 Что такое Docker по-человечески ━━━━━━━━━━━ — Образ (image) — слепок приложения и окружения (только чтение, версионируется). — Слои (layers) — «бутерброд» образа; кэш ускоряет сборку и загрузку. — Контейнер (container) — запущенный экземпляр образа

⚡️ S02E01 — Docker с нуля: чем он отличается от виртуальной машины и как им пользоваться

━━━━━━━━━━━━━━━━━━

Привет, родные 👋

Виртуальная машина — это отдельная операционная система, запущенная внутри вашей основной. Свои процессы, свои настройки, изоляция как у «компа в компе».

Docker — это «контейнер с приложением»: берёт ядро у хоста, тащит только нужные зависимости и взлетает за секунды.

Итог простой: виртуальная машина — тяжёлая броня; контейнер — лёгкая куртка. Для локалки, стендов и CI — самое оно.

━━━━━━━━━━━

🎯 Зачем это тебе

━━━━━━━━━━━

— Запускаешь сервис одинаково на ноуте и на сервере.

— Меньше «у меня не работает» из-за разных окружений.

— Можно экспериментировать без страха: поднял → проверил → снёс → чисто.

━━━━━━━━━━━

📦 Что такое Docker по-человечески

━━━━━━━━━━━

— Образ (image) — слепок приложения и окружения (только чтение, версионируется).

— Слои (layers) — «бутерброд» образа; кэш ускоряет сборку и загрузку.

— Контейнер (container) — запущенный экземпляр образа: легко стартует/останавливается/удаляется.

— Почему его зовут «одноразовым»: файловая система контейнера временная — пересоздал и вернулся к чистому состоянию. Удобно для обновлений и отладки.

— А куда девать данные? Выносить снаружи:

• bind-mount: -v ~/data:/app/data — папка хоста в контейнере;

• volume: -v myvol:/app/data — том, которым управляет Docker.

Так настройки и база не пропадут при пересоздании.

━━━━━━━━━━━

🧰 Мини-шпаргалка команд

━━━━━━━━━━━

— docker run … — запустить контейнер из образа.

— docker ps / docker ps -a — кто бежит и кто недавно бежал.

— docker logs <name> — логи процесса внутри.

— docker exec -it <name> sh — зайти внутрь (если есть shell).

— docker stop <name> → docker rm <name> — остановить и убрать.

— docker image ls, docker pull/push — образы и реестр.

━━━━━━━━━━━

🌐 Порты без боли

━━━━━━━━━━━

— -p 8080:80 = порт 8080 на хосте → 80 в контейнере.

— Не открывается страница? Проверь три вещи:

кто держит порт на хосте — ss -tulnp | grep 8080;

логи контейнера — docker logs <name>;

приложение внутри слушает не 127.0.0.1, а 0.0.0.0.

━━━━━━━━━━━

🛑 Типовые «а почему не работает?»

━━━━━━━━━━━

— Контейнер сразу умирает → смотри docker logs (переменные, пути, команда).

— Порт занят → найди процесс (ss -tulnp | grep :8080) или возьми другой (-p 8081:80).

— «Permission denied» к Docker → добавь себя в группу docker и перезайди в сессию.

— Снаружи тишина, локально ок → проверь UFW/маршруты, открой порт: sudo ufw allow 8080/tcp.

━━━━━━━━━━━

🚀 Что делаем в серии — по полочкам и с улыбкой 😎

━━━━━━━━━━━

— Ставим Docker и запускаем hello-world.

— Поднимаем nginx с пробросом 8080:80.

— Залезаем внутрь, работаем с ОС в контейнере.

— Ловим типовые фейлы и чиним их.

— Убираем за собой, чтобы система не пухла от мусора.

🔗 Домашка, команды и мини-челленджи:

https://github.com/b4shninja/b4shninja/blob/main/courses/from_zero_to_devops_hero/lab05/README.md

ИТОГ

━━━━━━━━━━━━━━━━━━

— Разберёшься, где уместна виртуальная машина, а где контейнер.

— Сможешь запустить сервис, посмотреть логи и быстро понять, что пошло не так.

— Готов к следующей серии — там напишем свой Dockerfile.

📩 Подписывайся, чтобы не пропустить выпуск про Dockerfile.

И зови всех-всех: друзья, коллеги, одногруппники — подписывайтесь, дальше будет ещё интереснее!