TGViewer
Кухня данных | Руслан Мустафин Кухня данных | Руслан Мустафин @etl_kitchen · 894 subscribers
Post #30 990
👩‍💻 Docker - база для домашней разработки и обучения

Продолжаем разбираться в инфраструктуре, чтобы облегчить возможность работы с сервисами и спокойно двигаться к Airflow/dbt/витринам, нам нужен быстрый и предсказуемый способ поднимать окружение.
Вот тут нам и понадобится Docker‼️

Как всегда, начнем знакомство с небольшой теории, затем перейдем к практике.

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

🏗Из чего состоит Docker?
➡️ Dockerfile - текстовый файл с инструкциями для сборки образа:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

➡️ Image (Образ) - неизменяемый шаблон со всеми зависимостями. Состоит из слоев, которые кэшируются для ускорения сборки.
➡️ Container (Контейнер) - запущенный экземпляр образа: изолирован, общается через порты и тома.
➡️ Registry - хранилище образов (Docker Hub, GitLab Container Registry).
➡️ Volumes - персистентное хранение данных (не пропадут при пересборках).
➡️ Networks/ports - изоляция и связь между контейнерами:
➡️ docker-compose - большая инструкция для всего сетапа сразу (разберем подробно в отдельном посте).

Как это работает?
1️⃣Находим образ в Registry (Docker Hub).
2️⃣Тянем образ: docker pull postgres:16 (или Docker подтянет его сам при первом запуске).
3️⃣ Запускаем контейнер из образа: указываем переменные окружения, порты и тома.
docker run -d --name pg \
-e POSTGRES_PASSWORD=secret \
-p 5432:5432 \
-v pgdata:/var/lib/postgresql/data \
postgres:16

4️⃣Смотрим запущенные контейнеры: docker ps
5️⃣Взаимодействуем: логи docker logs -f pg, зайти внутрь контейнера docker exec -it pg bash

🔍 Зачем это нам⁉️
➖Повторяемость: «работает у меня» превращаем в «работает у всех».
➖Изоляция: каждый сервис в своей песочнице - никаких сложностей из-за разных версий.
➖Скорость: одна команда - и у тебя запущенное приложение
➖Портативность: ноут, сервер, облако - легко запустить.

😩Что смотреть, чтобы разобраться?
1️⃣ Целый видео-курс с теорией и практикой
2️⃣Хорошая статья на хабре про то как работает докер

⁉️ Дальше по плану
❔шпаргалка команд для Docker;
❔что за зверь docker-compose и почему он удобнее ручного запуска;
❔поднимем Airflow и запустим первые DAG-и.
@etl_kitchen
  • 👍 15
  • 🐳 5
  • 🔥 4
  • 🤔 2
  • ❤ 1
More from @etl_kitchen
  1. Apr 29, 2026Если не сталкивались с понятием watermark Watermark (водяной знак) в инженерии данных — эт…
  2. Apr 29, 2026Задачка 🤪 Есть таблица-источник, которую мы грузим инкрементально. В таблице есть два важ…
  3. Apr 16, 2026Когда лид сказал, что в легаси подробная документация к коду. Тем временем документация 🤪…
  4. Apr 14, 2026Ларчик-то просто открывался Когда-то рассказывал, что у меня есть мой домашний сервер для…
  5. Apr 8, 2026У вас есть только 10 рублей, соберите себе идеальный конвейер данных 🤪 🟢Источник не меня…
  6. Apr 6, 2026Закрывал глаза в пятницу, открыл, а уже понедельник(( Заходи учиться, все бесплатно ➡️ htt…
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 →