---
author: Pans
category: Обучение
tags:
- devops
- docker
title: Минимальный практический набор для работы с Docker
---

Установить сам докер
```bash
# на Ubuntu официальный способ
curl -fsSL https://get.docker.com | sh
# добавить пользователя в группу docker(чтобы не писать каждый раз sudo)
sudo usermod -aG docker <username>
```

*иногда docker-compose нужно использовать через тире, что-то вроде старого варианта синтаксиса*

- Создать Dockerfile
- Создать docker-compose.yml
- запустить построение билда
```bash
docker compose build
# Пересобрать образ после изменений в Dockerfile или requirements.txt
docker compose build --no-cache
```

- запустить само приложение внутри созданного контейнера
```bash
docker compose up
```

- остановить работу контейнера
```bash
docker compose down
# -v не рекомендуется использовать в продакшене
# удалит все volumes, в том числе и БД 
docker compose down - v 
```

- Посмотреть запущенные контейнеры
```bash
docker ps
```

- выполнение операций внутри контейнера
```bash
docker compose exec <service> <parameters>
# например начать миграцию
docker compose exec web python manage.py migrate
# или зайти в bash контейнера, container_name смотрим в docker ps
docker exec -it <container_name> bash
```

- Посмотреть логи если что-то пошло не так
```bash
docker compose logs web
docker compose logs db
```

- так же можно работать и с нестандартными именами контейнеров
```bash
docker-compose -f docker-compose.local.yml up -d --build
docker-compose -f docker-compose.local.yml down
docker-compose -f docker-compose.local.yml logs web_local
docker-compose -f docker-compose.local.yml exec web_local bash
```