
Docker для новичков
Что такое Docker?
Docker позволяет «упаковать» приложение вместе со всеми его зависимостями в единый контейнер. Этот контейнер – это как небольшая, изолированная среда, которая гарантированно будет работать одинаково на любой машине, где установлен Docker.
Ключевых преимущества
- Согласованность: Приложение будет работать одинаково в разработке, тестировании и продакшене.
- Изоляция: Контейнеры изолированы друг от друга и от основной операционной системы, что повышает безопасность.
- Портативность: Вы можете легко переносить приложение между разными средами (разные операционные системы, облачные платформы и т.д.).
- Ускорение разработки: С Docker проще настроить и воспроизвести среду для разработки, что экономит время и силы.
Docker Compose
Это инструмент, который позволяет вам описывать и управлять несколькими Docker контейнерами одновременно. Представьте, что приложение состоит из веб-сервера, базы данных и, возможно, еще нескольких сервисов. Docker Compose позволяет вам описать эту структуру в одном файле (docker-compose.yml
) и, используя один простой командный вызов, запустить все контейнеры, создав и запустив их взаимосвязь.
Даже для использования одного сервиса удобней использовать docker compose, так как вам не нужно запоминать команды и параметры запуска.
Установка
В репозиториях большинства дистрибутивов Linux нет Docker и Docker Compose или содержатся не актуальные версии. Проще всего установить их с помощью официального скрипта.
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker ${USER}
sudo chmod 666 /var/run/docker.sock
Проверка версий
После установки проверьте версии утилит, выполнив команды:
> docker -v
Docker version 28.0.4, build b8034c0
> docker compose version
Docker Compose version v2.34.0
Тестовый docker-compose.yml
Создайте новый файл
mkdir dashlit && cd dashlit && nano docker-compose.yml
services:
app:
container_name: dashlit-app
image: ghcr.io/codewec/dashlit:latest
restart: unless-stopped
environment:
ORIGIN: '${ORIGIN:-http://localhost:3000}'different
ports:
- '3000:3000'
volumes:
- ./data:/app/data
Сохраните, выйдите из редактора nano
(ctrl + x
) и запустите
docker compose up
Через несколько секунд попробуйте в браузере зайти по адресу: http://ip:3000
, указав вместо ip
ip адрес компьютера, на котором запускаете Docker. Для примера взято простое веб-приложение для организации дашборда DashLit.

Типичные примеры
Ниже приведены быстрые примеры, которых будет достаточно подавляющему числу пользователей.
Обновление образов и перезапуск контейнеров
docker compose pull && docker compose up -d --force-recreate
или
docker compose down && docker compose pull && docker compose up -d
Обновление одного сервиса
docker compose pull <service_name> && docker compose up -d --force-recreate <service_name>
Просмотр запущенных контейнеров и логов
docker compose ps
docker compose logs
Очистка кэша
docker system prune
Основные команды Docker
docker ps
— Показывает список запущенных контейнеров.docker ps -a
– показывает все контейнеры, включая остановленные.docker images
— Показывает список доступных образов Docker.docker image prune -a
– удаляет все неиспользуемые образы.
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
— Запускает новый контейнер из образа.docker run -d -p 8080:80 nginx
– запускает контейнер nginx в фоновом режиме и прослушивает порт 8080 на хосте.docker run --name mycontainer -d -p 8080:80 nginx
— запускает контейнер с именем «mycontainer» и прослушивает порт 8080.
docker stop [CONTAINER ID или NAME]
— Останавливает запущенный контейнер.docker stop mycontaine
r
docker start [CONTAINER ID или NAME]
— Запускает остановленный контейнер.docker start mycontainer
docker restart [CONTAINER ID или NAME]
— Перезапускает запущенный контейнер.docker rm [CONTAINER ID или NAME]
— Удаляет остановленный контейнер.docker rm mycontainer
docker exec -it [CONTAINER ID или NAME] bash
— Запускает оболочку в запущенном контейнере. Позволяет выполнять команды внутри контейнера.docker system prune
— Удаляет все неиспользуемые образы и другие ресурсы. Очень полезно накапливается большой кэш старых версий образов.
Основные команды Docker Compose
docker compose pull
— загружает (скачивает) образы, указанные в файлеdocker-compose.yml
, из реестра (например, Docker Hub) на локальную машину, но не запускает контейнеры.docker compose up -d
— Создает и запускает контейнеры, определенные в файлеdocker-compose.yml
в режиме detached (в фоновом режиме).docker compose down
— Останавливает и удаляет контейнеры, сети и тома, определенные в файлеdocker-compose.yml
.docker compose ps
— Показывает список запущенных сервисов.docker compose logs
— Показывает логи сервиса.docker compose stop
— Останавливает запущенные сервисы.docker compose start
— Запускает сервисы, определенные в файлеdocker-compose.yml
.