Docker как пользоваться: Docker Desktop, Compose, Synology | Полный гайд | AdminWiki

Docker как пользоваться: Полное руководство от установки до оркестрации

17 декабря 2025 7 мин. чтения #devops #docker #docker compose #docker desktop #synology #контейнеризация

Представь, что твоё приложение — это сложный конструктор. Раньше для его сборки на каждом компьютере требовалась точная инструкция и правильная версия деталей. Docker — это упаковщик, который кладёт весь конструктор вместе с инструкцией в одну коробку (контейнер). Теперь этот контейнер можно открыть и собрать на ЛЮБОМ компьютере, где есть Docker. Давай разберем, как этим пользоваться.

1. Установка и первые шаги с Docker Desktop

Начнём с основы. Docker Desktop — это графическое приложение, которое устанавливает всё необходимое для работы с Docker на твою локальную машину (Windows, macOS, Linux).

Важно: После установки Docker Desktop Docker Engine ("движок") и Docker CLI (командная строка) становятся доступны автоматически.

Проверка установки

Открой терминал и выполни команду для проверки версии. Это подтвердит, что Docker установлен и готов к работе.

bash
docker --version
# Пример вывода: Docker version 24.0.7, build 24.0.7-ubuntu

Твоя первая команда: Запуск тестового контейнера

Давай убедимся, что всё работает. Запустим классический контейнер "hello-world".

bash
docker run hello-world

Docker сначала скачает образ "hello-world" из реестра (Docker Hub), а затем создаст и запустит из него контейнер, который выведет приветственное сообщение. Если ты это видишь — поздравляю, Docker работает!

2. Основные команды Docker: Работа с образами и контейнерами

Вся работа в Docker строится вокруг двух сущностей: Образы (Images) — шаблоны, и Контейнеры (Containers) — запущенные экземпляры образов.

Задача Команда Описание
Поиск образа docker search nginx Ищет образы в реестре Docker Hub
Скачать образ docker pull nginx:alpine Качает образ (тег `alpine` — облегчённая версия)
Запустить контейнер docker run -d -p 8080:80 --name my-nginx nginx -d — фон, -p — проброс порта, --name — имя
Список контейнеров docker ps Только активные. Добавь -a для всех.
Остановить контейнер docker stop my-nginx Корректная остановка
Удалить контейнер docker rm my-nginx Удаляет остановленный контейнер
Просмотр логов docker logs -f my-nginx -f — следить за логами в реальном времени
Опасно: Команда `docker run` каждый раз создаёт новый контейнер. Если тебе нужно перезапустить существующий, используй `docker start`. Удаляй неиспользуемые контейнеры и образы (`docker system prune -a`), чтобы не захламлять диск.

3. Docker Compose как пользоваться для управления несколькими контейнерами

Когда твоё приложение состоит из нескольких сервисов (например, веб-сервер, база данных, кэш), управлять каждым контейнером отдельно неудобно. Docker Compose решает эту проблему. Он позволяет описать весь стек приложения в одном YAML-файле и управлять им одной командой.

Создаём docker-compose.yml

Создай файл `docker-compose.yml` в папке своего проекта. Вот пример для простого веб-приложения с WordPress и MySQL:

yaml
version: '3.8'

services:
  db:
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppass

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppass
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html

volumes:
  db_data:
  wp_data:

Основные команды Docker Compose

  • docker-compose up -d — Запустить все сервисы в фоне.
  • docker-compose down — Остановить и удалить контейнеры, сеть.
  • docker-compose ps — Показать статус сервисов проекта.
  • docker-compose logs -f wordpress — Показать логи конкретного сервиса.
  • docker-compose exec db mysql -u root -p — Выполнить команду внутри запущенного контейнера (подключиться к MySQL).

После `docker-compose up -d` твой WordPress будет доступен по адресу http://localhost:8000. Всё — база данных, настройки, файлы — изолировано в томах (volumes) и будет сохраняться между перезапусками.

4. Как пользоваться Docker на Synology NAS

Synology DiskStation Manager (DSM) имеет встроенный графический интерфейс для Docker — Docker (Package Center) и Container Manager в новых версиях. Это отличный способ запускать домашние сервисы (Pi-hole, Plex, Nextcloud) без головной боли.

Пошаговая настройка

  1. Установи пакет "Docker" из Центра пакетов DSM.
  2. Открой Docker/Container Manager. Ты увидишь интерфейс, похожий на Docker Desktop: разделы "Образы", "Контейнеры", "Сети", "Тома".
  3. Скачай образ. Перейди в "Реестр", найди нужный образ (например, `linuxserver/plex`) и нажми "Загрузить". Выбери тег (лучше конкретный, а не `latest`).
  4. Запусти контейнер. В разделе "Образы" выбери скачанный образ и нажми "Запустить". Откроется мастер настройки:
    • Имя контейнера: Придумай понятное имя.
    • Автозапуск: Включи, чтобы контейнер стартовал при загрузке NAS.
    • Тома (Volumes): Сопоставь папки на NAS с путями в контейнере. Например, `/docker/plex/config` → `/config`. Здесь хранятся твои данные.
    • Порты (Ports): Пробрось порты. Например, 32400 (веб-интерфейс Plex).
    • Переменные окружения (Environment): Укажи настройки, как PUID, PGID для правильных прав доступа к файлам.
  5. Примени настройки и запусти. Контейнер появится в списке с статусом "Выполняется".
Совет для Synology: Для сложных приложений используй Docker Compose через SSH. Подключись к Synology по SSH (включи в "Панель управления" → "Терминал и SNMP") и создай `docker-compose.yml` в общей папке. Дальше работай через команды `docker-compose`, как на обычном Linux.

Часто задаваемые вопросы (FAQ)

Чем отличается Docker Desktop от Docker Engine?

Docker Engine — это сервис (демон), который непосредственно создаёт и запускает контейнеры. Docker Desktop — это графическая оболочка для конечного пользователя, которая включает в себя Engine, CLI, Compose и удобный интерфейс для управления.

Мои данные в контейнере пропадают после перезапуска. Как сохранить?

Используй Тома (Volumes) или Bind Mounts. Они монтируют папку с твоего хоста (компьютера или NAS) внутрь контейнера. Данные будут сохраняться на хосте независимо от жизненного цикла контейнера. В команде это флаг `-v /путь/на/хосте:/путь/в/контейнере`.

Docker Compose и Dockerfile — это одно и то же?

Нет! Dockerfile — это инструкция по сборке ОДНОГО образа (как установить софт, скопировать файлы). docker-compose.yml — это инструкция по запуску и связыванию НЕСКОЛЬКИХ готовых образов (контейнеров) в единую сеть.

Безопасно ли запускать Docker на Synology для важных данных?

Да, если следовать best practices: используй официальные или проверенные образы (например, от `linuxserver/`), не запускай контейнеры от root (задавай PUID/PGID), регулярно обновляй образы, используй отдельные сети и томы для каждого сервиса, настраивай бэкапы томов через Hyper Backup.

Заключение

Ты прошёл путь от базовых команд Docker до оркестрации сервисов через Docker Compose и развертывания на Synology. Помни главное:

  • Docker изолирует приложения, делая их переносимыми и консистентными.
  • Docker Desktop — твой стартовый набор для локальной разработки.
  • Docker Compose — мощный инструмент для описания многоконтейнерных приложений.
  • Графический интерфейс Docker на Synology NAS делает его идеальной домашней платформой для сервисов.

Экспериментируй, начинай с простых контейнеров, изучай логи и не бойся удалять и пересоздавать. Удачи в контейнеризации!

Поделиться:
Сохранить гайд? В закладки браузера