Docker и Docker Compose: от нуля до первого контейнера
Контейнеризация стала стандартом разработки и деплоя. Docker позволяет упаковать приложение вместе со всеми зависимостями в изолированный образ, который одинаково работает на ноутбуке разработчика и на production-сервере. В этой статье мы пройдём путь от установки до запуска многоконтейнерного приложения с базой данных.
Установка Docker в Ubuntu и Linux Mint
Рекомендуется использовать официальный репозиторий Docker, а не пакеты из дистрибутива — они часто устаревают. Добавьте ключ и репозиторий, затем установите движок.
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Добавьте своего пользователя в группу docker, чтобы не использовать sudo при каждом вызове: sudo usermod -aG docker $USER, затем перелогиньтесь.
Первый контейнер
Проверьте установку запуском тестового образа: docker run --rm hello-world. Если видите приветственное сообщение, движок работает. Теперь запустим веб-сервер nginx и пробросим порт.
docker run -d --name web -p 8080:80 nginx:alpine
curl -I http://localhost:8080
Docker Compose для реального проекта
Compose описывает многоконтейнерное приложение в одном YAML-файле. Пример для веб-приложения с PostgreSQL:
services:
app:
image: myapp:latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://user:pass@db:5432/app
depends_on:
- db
db:
image: postgres:16-alpine
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: app
volumes:
pgdata:
Запуск: docker compose up -d. Остановка: docker compose down. Данные базы сохранятся в именованном томе pgdata.
Полезные команды
docker ps -a— список всех контейнеров.docker logs -f web— поток логов.docker exec -it web sh— войти в контейнер.docker system prune -a— очистка неиспользуемых образов и кэша (осторожно).
Начните с простых сценариев: поднимите базу данных для локальной разработки или тестовый веб-сервер. Когда освоитесь, переходите к собственным Dockerfile и CI/CD-пайплайнам.




