А что, так можно было?
2026-02-19 18:15 Diff

Представим типичную ситуацию: вам нужно запустить веб-приложение на Python с базой данных PostgreSQL. Решить эту задачу можно двумя способами — традиционным и с помощью Docker. Рассмотрим оба.

Путь №1: без Docker

  • Разработчик настраивает Python и базу у себя, проверяет, пишет длинную инструкцию для админа, молится, чтобы ничего не забыть и передаёт админу.
  • Админ пытается по инструкции воспроизвести окружение на сервере. Версии софта не совпадают, зависимости конфликтуют, приложение падает. Начинается мучительный поиск отличий между машиной разработчика и сервером.

Что получаем: потерю времени, нервов и денег. Развёртывание — это лотерея.

Путь №2: С Docker

Вся среда для приложения описывается в двух простых файлах:

Dockerfile: инструкция по сборке «коробки» с приложением

FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["flask", "run", "--host=0.0.0.0"]

docker-compose.yml: Файл для запуска «коробки» с приложением и базы данных вместе

services: app: build: . ports: ["5000:5000"] db: image: postgres:13 environment: [POSTGRES_USER=user, POSTGRES_PASSWORD=password]

Разработчик на своем ноутбуке и админ на сервере выполняют одну команду:

docker-compose up

Что получаем: приложение гарантированно запускается в идентичном окружении где угодно. Никаких конфликтов и «у меня работало». Развёртывание занимает минуты, а не часы.

Это тот самый случай, когда «мне такое надо»!

Все нюансы работы с Docker – от основ до оркестрации и безопасности, рассказываем на курсе «Docker для админов и разработчиков». Стартуем 21 июля.

Познакомиться с программой и выбрать тариф — по ссылке.