Гид по технологиям

Как использовать Docker на Windows 10 и 11: пошаговое руководство

9 min read DevOps Обновлено 23 Dec 2025
Docker на Windows 10 и 11 — руководство
Docker на Windows 10 и 11 — руководство

макбук с Docker на экране

Что такое Docker?

Docker — это открытая платформа для упаковки, развёртывания и запуска приложений в контейнерах. Контейнер включает приложение и все его зависимости, благодаря чему оно работает одинаково в локальной среде разработчика, на тестовых серверах и в продакшн‑окружениях.

Ключевая идея: контейнер виртуализует только операционную систему, а не аппаратную платформу, поэтому контейнеры легче и быстрее виртуальных машин.

Коротко: контейнер — это изолированная среда исполнения с собственными зависимостями; образ (image) — слепок файловой системы и конфигурации; контейнер (container) — запущенный экземпляр образа.

Контейнеры на грузовом корабле, символизирующие изоляцию приложений

Важно: Docker — не единственная технология контейнеризации; существуют альтернативы. Ниже мы рассмотрим, когда Docker особенно уместен и где лучше подумать о других решениях.

Зачем использовать Docker?

Круговая диаграмма процесса CI/CD: сборка, планирование, интеграция

Преимущества Docker для разработчиков и команд:

  • Повторяемая среда: один образ — одна конфигурация и набор зависимостей.
  • Портативность: образ работает на любой машине, где установлен Docker.
  • Быстрый старт: контейнеры запускаются быстрее виртуальных машин.
  • Масштабирование: отдельные компоненты (микросервисы) можно масштабировать независимо.
  • Интеграция с CI/CD: образ можно собрать в конвейере и деплоить так же, как локально.

Типичные сценарии использования Docker:

  • Быстрый запуск Linux‑дистрибутивов и утилит в Windows.
  • Тестовые и учебные стенды (например, nginx, PostgreSQL, Redis).
  • Упаковка приложения в единый образ для передачи между средами.
  • Упрощение CI/CD и изолированное тестирование.

Если хочется попробовать, начните с запуска Ubuntu или nginx в контейнере — это даёт практическое понимание.

Что такое Windows Subsystem for Linux (WSL)?

Логотип Windows и Tux — символ Linux

WSL — подсистема Windows для запуска Linux‑окружений напрямую в Windows без необходимости создавать полноценную виртуальную машину или двойную загрузку. WSL 2 использует легковесную виртуализацию с собственным Linux‑ядром, что даёт лучшую совместимость и производительность.

Кратко: WSL 2 — удобный способ запускать Linux‑терминал и инструменты (apt, bash, systemd‑совместимые утилиты) на Windows.

Совет: для работы с Docker на Windows рекомендуется WSL 2 — он даёт более быстрый ввод‑вывод и более тесную интеграцию с Docker Desktop.

Установка Docker Desktop на Windows: пошагово

Окно запущенного Docker Engine

Docker Desktop — официальное приложение для Windows и macOS, которое упрощает работу с Docker, предоставляет графический интерфейс и интеграцию с WSL 2.

Подготовка: обновите Windows 10 до последней сборки (по возможности) или используйте Windows 11. Для работы с WSL 2 нужны права администратора.

Шаги установки Docker Desktop:

  1. Перейдите на официальный сайт Docker и скачайте Docker Desktop для Windows.
  2. Закройте все активные приложение, которые могут использовать виртуальные адаптеры (VPN-клиенты, Hyper‑V‑виртуальные машины и т. п.).
  3. Запустите скачанный установочный файл двойным щелчком.
  4. В мастере установки следуйте инструкциям; по умолчанию рекомендуется включить опцию интеграции с WSL 2.
  5. Если требуется, предоставьте права администратора.
  6. После завершения установки перезагрузите систему, если мастер предложит перезапуск.
  7. Запустите Docker Desktop через меню Пуск.
  8. Проверьте работоспособность командой в терминале (PowerShell или WSL):
docker --version

Если команда возвращает версию Docker, установка успешна.

Важно: если вы планируете использовать Docker CLI из WSL, убедитесь, что интеграция с вашей WSL‑дистрибуцией включена в настройках Docker Desktop (Settings → Resources → WSL Integration).

Как включить WSL 2 на Windows

Перед использованием Docker с бэкендом WSL 2 нужно установить и включить WSL 2.

Требования: Windows 10 (сборка 19041 и выше) или Windows 11. Для более старых сборок возможна ручная установка компонентов.

Быстрая установка WSL 2 с Ubuntu (рекомендуемый способ):

  1. Откройте меню Пуск, найдите «Командная строка» или «PowerShell», щёлкните правой кнопкой и выберите «Запуск от имени администратора».
  2. Выполните команду:
wsl --install
  1. Подождите, пока система скачает и установит WSL и дистрибутив по умолчанию (обычно Ubuntu). Возможно, потребуется перезагрузка.

Установка конкретного дистрибутива:

wsl --install -d 

Просмотреть список доступных дистрибутивов:

wsl.exe -l -o

Если система сообщает о несовместимости или ошибки при установке, проверьте:

  • Включены ли компоненты «Платформа виртуальной машины» и «Windows Subsystem for Linux» в «Включение или отключение компонентов Windows».
  • Обновлена ли Windows до нужной сборки.
  • Наличие обновлений ядра WSL (при необходимости скачайте обновление с сайта Microsoft).

Установка Docker с использованием WSL 2 как бэкенда

Интеграция Docker Desktop с WSL 2 даёт лучшую производительность и позволяет использовать Docker CLI изнутри WSL‑дистрибутива.

Шаги:

  1. Установите WSL 2 (см. предыдущий раздел).
  2. Скачайте и установите Docker Desktop для Windows.
  3. Перезагрузите систему после установки, если требуется.
  4. Откройте Docker Desktop → Settings → Resources → WSL Integration.
  5. Включите переключатель «Use the WSL 2 based engine» или «Use WSL 2 based engine», если он доступен, и отметьте дистрибутивы, с которыми хотите интегрировать Docker.
  6. Нажмите «Apply & Restart».
  7. В WSL (Ubuntu и т. п.) проверьте доступность Docker:
docker --version
docker run --rm hello-world

Команда hello-world скачает тестовый образ и запустит контейнер, который выведет сообщение о корректной установке.

Базовые команды и первый контейнер

Запуск и базовые операции, которые полезно знать сразу:

  • Скачивание и запуск образа в один шаг:
docker run --name my-nginx -d -p 8080:80 nginx:latest
  • Просмотр запущенных контейнеров:
docker ps
  • Остановка контейнера:
docker stop my-nginx
  • Удаление контейнера:
docker rm my-nginx
  • Список локальных образов:
docker images
  • Сборка образа из Dockerfile:
docker build -t my-app:1.0 .
  • Логирование контейнера:
docker logs -f 

Пример простого Dockerfile

Ниже — минимальный пример Dockerfile для Node.js‑приложения:

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Сборка и запуск:

docker build -t node-app:1.0 .
docker run --name node-app -d -p 3000:3000 node-app:1.0

Использование docker-compose для мультиконтейнерных приложений

Пример docker-compose.yml для приложения с бэкендом и БД:

version: '3.8'
services:
  app:
    build: ./app
    ports:
      - '5000:5000'
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      POSTGRES_DB: appdb
      POSTGRES_USER: appuser
      POSTGRES_PASSWORD: example
    volumes:
      - db-data:/var/lib/postgresql/data
volumes:
  db-data:

Запуск:

docker-compose up -d

Масштабирование и оркестрация

Для управления множеством контейнеров в продакшн‑окружениях часто используют оркестраторы, например Kubernetes. Docker подходит для разработки и небольших продакшн‑сценариев; если требуется автоскейлинг, самовосстановление и сложные политики деплоя — рассмотрите Kubernetes или управляемые облачные сервисы.

Когда стоит использовать Kubernetes:

  • Большое количество микросервисов.
  • Необходимость автоскейлинга и самовосстановления.
  • Команда готова поддерживать дополнительную операционную сложность.

Безопасность: базовый чек‑лист для Docker на Windows

  • Запускайте контейнеры с минимальными привилегиями; избегайте –privileged, если нет крайней нужды.
  • Пользуйтесь официальными базовыми образами или проверяйте источники на Docker Hub.
  • Регулярно обновляйте образы и уязвимые зависимости.
  • Ограничивайте доступ по сети: используйте брандмауэр и политики сети.
  • Подпись и верификация образов (Docker Content Trust) для продакшн‑деплоев.
  • Сканируйте образы на уязвимости (Trivy, Clair и т. п.).
  • Не храните секреты в Dockerfile; используйте секреты Docker или хранилища секретов (HashiCorp Vault, Azure Key Vault).

Типичные проблемы и их решения

  1. Docker не запускается после установки

    • Проверьте наличие включённых компонентов Hyper‑V и «Платформа виртуальной машины».
    • Перезагрузите компьютер с правами администратора.
    • Посмотрите логи Docker Desktop (Settings → Troubleshoot → Get Support).
  2. Проблемы с WSL интеграцией

    • Убедитесь, что ваша дистрибуция отображается в настройках WSL Integration.
    • Обновите ядро WSL, если получаете ошибки совместимости.
  3. Сеть контейнера не доступна извне

    • Проверьте проброс портов (-p host:container).
    • Убедитесь, что Windows‑брандмауэр или корпоративный политик не блокируют порты.
  4. Сборка образа зависает или занимает много места

    • Минимизируйте количество слоёв в Dockerfile.
    • Используйте multistage‑build для удаления временных зависимостей.

Роль‑ориентированные чек‑листы

Для разработчика:

  • Установить Docker Desktop и WSL 2.
  • Проверить docker –version и docker run hello-world.
  • Создать локальный Dockerfile и собрать образ.
  • Настроить docker‑compose для локального стека.
  • Интегрировать запуск контейнера в цепочку CI.

Для системного администратора / DevOps:

  • Настроить Docker Desktop на рабочих станциях и обеспечить версионность.
  • Организовать приватный реестр или использовать защищённый Docker Hub.
  • Внедрить сканирование образов и ревью образов.
  • Настроить мониторинг контейнеров и логирование.

Для менеджера проекта / тимлида:

  • Определить критерии успеха миграции в контейнеры.
  • Оценить влияние на CI/CD и сроки релизов.
  • Убедиться в наличии резервного плана и SOP для rollback.

Мини‑методология миграции приложения в контейнеры

  1. Инвентаризация: перечислите компоненты приложения и зависимости.
  2. Контейнеризация: создайте Dockerfile для каждого компонента.
  3. Тестирование: локальные интеграционные тесты с docker‑compose.
  4. CI/CD: добавьте сборку образа в ваш конвейер и публикуйте теги.
  5. Стейджинг: разверните на стейдж‑окружении и прогоните нагрузочное тестирование.
  6. Продакшн: планируйте релиз с отслеживанием отката.
  7. Поддержка: мониторинг, обновления образов, политики безопасности.

План отката (runbook) для неудачного релиза

  1. Действие при инциденте: зафиксировать время и симптом в системе инцидентов.
  2. Приостановка изменений: остановить автоматические деплои и уведомить команду.
  3. Откат к стабильному образу: запустить предыдущую версию образа с проверенными тегами.
docker pull registry.example.com/my-app:stable
docker stop my-app
docker rm my-app
docker run -d --name my-app -p 80:80 registry.example.com/my-app:stable
  1. Проверка: выполнить smoke‑тесты и мониторить метрики.
  2. Ретроспектива: собрать логи, определить причину, завести задачи на исправление.

Критерии приёмки

  • Образ успешно собирается в CI и проходит unit/integ тесты.
  • Контейнеры стартуют в стейдж‑окружении и отвечают на запросы.
  • Метрики (CPU, память) в пределах ожидаемых порогов при нагрузочном тестировании.
  • План отката протестирован и доступен в репозитории playbook.

Совместимость и примечания по миграции

Совместимость с Windows:

  • Windows 10: требуется сборка 19041 или выше для полной поддержки WSL 2.
  • Windows 11: WSL 2 поддерживается «из коробки», но рекомендовано обновить систему до актуальных патчей.

Локальные альтернативы Docker Desktop:

  • Использование чистого WSL + docker‑engine в Linux (более лёгкий подход для опытных пользователей).
  • Платформы LXC/LXD, Podman — альтернатива без демон‑контроллера Docker.

Когда Docker может быть не лучшим выбором:

  • Если приложение требует прямого доступа к аппаратуре или специфичных драйверов, не поддерживаемых в контейнерах.
  • В случаях, где важна строгая аппаратная изоляция и многослойная виртуализация — рассмотреть виртуальные машины.

Короткий словарь

  • Образ (image): файл‑шаблон для создания контейнера.
  • Контейнер (container): запущенный образ.
  • Dockerfile: рецепт сборки образа.
  • WSL: подсистема Windows для запуска Linux.

Социальные материалы

OG title: Docker на Windows 10 и 11 — руководство по запуску и интеграции с WSL 2

OG description: Полное руководство по установке Docker Desktop, включению WSL 2, примерам Dockerfile, безопасности и плану отката.

Короткое объявление (100–200 слов):

Docker делает контейнеризацию приложений доступной на Windows 10 и 11. В этом руководстве вы найдёте пошаговые инструкции по установке Docker Desktop и включению WSL 2, примеры Dockerfile и docker‑compose, чек‑листы для ролей, рекомендации по безопасности и готовый план отката. Руководство полезно как разработчикам, так и DevOps‑инженерам, которые хотят быстро начать работать с контейнерами и настроить повторяемые процессы сборки и деплоя.

Заключение

Docker — мощный инструмент, который ускоряет разработку, облегчает тестирование и даёт предсказуемость при развёртывании приложений. На Windows 10 и 11 оптимальный опыт достигается через интеграцию Docker Desktop с WSL 2. Начните с простых контейнеров, постепенно внедряйте CI/CD и политики безопасности, тестируйте откаты и готовьте инфраструктуру к оркестрации, если проект этого потребует.

Краткие выводы:

  • Установите WSL 2, затем Docker Desktop с интеграцией WSL.
  • Проверяйте образы на безопасность и храните секреты вне Dockerfile.
  • Имеете план отката и тестируйте его регулярно.

Архитектура микросервисов с контейнерами

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Управление статусом Google Chat в Gmail
Инструкции

Управление статусом Google Chat в Gmail

Как предварительно заполнить Google Форму
Руководство

Как предварительно заполнить Google Форму

Как играть в Wordle на iPhone и iPad
Руководство

Как играть в Wordle на iPhone и iPad

Формат «Бухгалтерский» в Excel: как применить
Excel

Формат «Бухгалтерский» в Excel: как применить

Форматирование цифр и маркеров в Word
Microsoft Word

Форматирование цифр и маркеров в Word

Круговые ссылки в Excel: найти и устранить
Excel

Круговые ссылки в Excel: найти и устранить