Найти в Дзене
Путь джуна

Docker для самых маленьких: почему все сходят с ума по контейнерам

Звучит как магия. На самом деле это просто коробка для вашего приложения. Представьте, что вы переезжаете. У вас есть компьютер, на котором всё настроено: Python 3.10, Django 4.2, PostgreSQL, Redis. Всё работает. Вы приезжаете на новую квартиру, включаете компьютер, а там... Python 2.7, ничего не работает, всё падает. Docker решает эту проблему. Docker — это коробка, в которой лежит ваше приложение + всё, что ему нужно для работы. Python, библиотеки, настройки — всё внутри коробки. Вы переезжаете на любой компьютер, открываете коробку — и приложение работает одинаково. Виртуальная машина — это целый компьютер внутри компьютера. Тяжёлая, медленная, ест много ресурсов. Docker-контейнер — это просто изолированная среда. Лёгкая, быстрая, запускается за секунду. Сравнение: Образ (Image)
Это чертёж, по которому создаются контейнеры. Как форма для выпечки печенья. Контейнер (Container)
Это готовое печенье, испечённое по чертежу. Можно съесть (запустить). Dockerfile
Это рецепт, как испечь пече
Оглавление

Docker — это слово, которое вы слышите везде. «Заверни в докер», «запусти в контейнере», «докеризируй проект».

Звучит как магия. На самом деле это просто коробка для вашего приложения.

📦 Что такое Docker простыми словами

Представьте, что вы переезжаете. У вас есть компьютер, на котором всё настроено: Python 3.10, Django 4.2, PostgreSQL, Redis. Всё работает.

Вы приезжаете на новую квартиру, включаете компьютер, а там... Python 2.7, ничего не работает, всё падает.

Docker решает эту проблему.

Docker — это коробка, в которой лежит ваше приложение + всё, что ему нужно для работы. Python, библиотеки, настройки — всё внутри коробки.

Вы переезжаете на любой компьютер, открываете коробку — и приложение работает одинаково.

🧱 Контейнер vs Виртуальная машина

Виртуальная машина — это целый компьютер внутри компьютера. Тяжёлая, медленная, ест много ресурсов.

Docker-контейнер — это просто изолированная среда. Лёгкая, быстрая, запускается за секунду.

Сравнение:

  • Виртуалка: 10 ГБ, минута на запуск.
  • Docker: 300 МБ, секунда на запуск.

🏗️ Главные понятия

Образ (Image)
Это чертёж, по которому создаются контейнеры. Как форма для выпечки печенья.

Контейнер (Container)
Это готовое печенье, испечённое по чертежу. Можно съесть (запустить).

Dockerfile
Это рецепт, как испечь печенье. Инструкция: возьми Python 3.10, добавь мои файлы, установи библиотеки, запусти.

Docker Hub
Это сайт, где лежат готовые чертежи (образы). Хотите Python? Скачайте официальный образ. PostgreSQL? Тоже есть.

📝 Пример Dockerfile для новичка

Допустим, у вас есть простая Python-программа app.py:

print("Привет из контейнера!")

Создаём файл Dockerfile (без расширения):

# Берём официальный образ Python
FROM python:3.10-slim

# Копируем наш код в контейнер
COPY app.py /app.py

# Говорим, что запускать
CMD ["python", "/app.py"]

Теперь собираем образ:

docker build -t my-app .

Запускаем контейнер:

docker run my-app

Всё! Ваша программа работает в контейнере.

🚢 Базовые команды Docker

КомандаЧто делаетdocker psПоказать запущенные контейнерыdocker ps -aПоказать все контейнерыdocker imagesПоказать все образыdocker stop имяОстановить контейнерdocker rm имяУдалить контейнерdocker rmi имяУдалить образdocker logs имяПоказать логи контейнера

🎯 Зачем Docker джуну

1. Чтобы не мучиться с установкой
Поставили PostgreSQL через Docker одной командой — и забыли. Не надо гуглить «как установить PostgreSQL на Windows».

2. Чтобы проект работал везде
Скинули другу проект с Dockerfile, он запустил одной командой — всё работает. Никаких «а у меня не запускается».

3. Чтобы прокачать резюме
Docker есть почти в каждой вакансии. Просто напишите «умею работать с Docker» — уже плюс.

4. Чтобы понять, как работают современные проекты
Все серьезные проекты давно в контейнерах.

💡 Как начать

  1. Скачайте Docker Desktop (для Windows/Mac) или установите Docker Engine (для Linux).
  2. Запустите первый контейнер:bashCopyDownloaddocker run hello-world
  3. Запустите PostgreSQL:bashCopyDownloaddocker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
  4. Задокеризируйте свой проект (напишите Dockerfile).