Установка и использование Docker Desktop на Linux
Ключевые термины
- Docker Desktop — графическая и интегрированная среда разработки контейнеров, применяющая виртуальную машину для запуска Linux-контейнеров.
- Docker Engine — демон и система запуска контейнеров как сервис на хосте.
- KVM — аппаратная виртуализация для Linux.
- Kubectl — CLI для управления Kubernetes-кластером.
Быстрый план статьи
- Системные требования и подготовка
- Установка и добавление репозитория Docker
- Первичный запуск и проверка CLI
- Включение Kubernetes и базовые команды
- Отличия Docker Desktop и Docker Engine
- Настройка Docker Engine в Desktop и лимитов ресурсов
- Проверка, отладка и типичные проблемы
- Ролевые чек-листы, миграция и безопасность
- Вывод и краткое руководство по проверкам
Подготовка к запуску Docker Desktop
Руководство тестировалось на чистой Ubuntu 22.04. Docker Desktop на Linux также поддерживается на Ubuntu 21.10, Debian 11 и Fedora 35/36. Для других дистрибутивов смотрите официальную документацию Docker.
Минимальные требования и рекомендация:
- 64‑битная система с аппаратной виртуализацией KVM.
- Минимум 4 ГБ оперативной памяти; для комфортной разработки рекомендую 8 ГБ и больше.
- Включённая виртуализация в BIOS/UEFI.
Проверка поддержки KVM
KVM часто автоматически доступен. Проверьте командой:
$ kvm-okОжидаемый вывод:
INFO: /dev/kvm exists
KVM acceleration can be used
Если вы видите сообщение об ошибке, включите виртуализацию в BIOS/UEFI. Можно попытаться вручную загрузить модули KVM:
# 1/2$ sudo modprobe kvm
$ sudo modprobe kvm_intel
$ sudo modprobe kvm_amd
Важно: Docker Desktop не предназначен для одновременной работы с локальным Docker Engine. Перед установкой остановите сервис Docker Engine, чтобы избежать конфликтов ресурсов и портов:
$ sudo service docker stopВажно: сохраните нужные образы и контейнеры, если планируете вернуть Engine позже.
Установка Docker Desktop
На момент написания пакет Desktop не всегда доступен через системные репозитории, его можно загрузить вручную. Скачайте пакет, соответствующий вашей архитектуре, по ссылкам в документации Docker.
Пример скачивания для amd64:
$ wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.12.0-amd64.debПакет Desktop зависит от компонентов из репозитория Docker. Даже если сама Desktop будет установлена локально, репозиторий нужен для разрешения зависимостей. Добавьте официальный репозиторий Docker в систему:
$ sudo apt update$ sudo apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release$ sudo mkdir -p /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 \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt updateТеперь установите пакет Desktop локально через apt, чтобы зависимости были разрешены автоматически:
$ sudo apt install -y ./docker-desktop-4.12.0-amd64.debПосле установки Docker Desktop должен появиться в списке приложений вашей среды рабочего стола.
Important: если менеджер пакетов сообщает конфликты, внимательно прочитайте список конфликтующих пакетов. Часто достаточно остановить или удалить старые пакеты Docker, настроить репозиторий и повторить установку.
Первый запуск и проверка CLI
Запустите Docker Desktop через лаунчер приложений. В системном трее появится иконка Docker (кит). Нажатие откроет меню трея.

При первом запуске десктоп может инициализироваться несколько минут. Когда все готово, в трее появится сообщение «Docker Desktop is running» и вы сможете открыть Dashboard.

Вы будете приглашены принять условия использования и можете войти в Docker Hub через кнопку Login в заголовке приложения.
Проверьте CLI:
$ docker versionОжидаемый примерный вывод:
Client: Docker Engine - Community
Cloud integration: v1.0.29
Version: 20.10.18
…
$ docker compose version
Docker Compose version v2.10.2Запустите учебный контейнер, чтобы убедиться, что всё работает:
$ docker run -d -p 80:80 docker/getting-startedЧерез интерфейс Docker Desktop в разделе Containers появится ваш контейнер. Нажатие на «три точки» справа от записи откроет список действий: открыть терминал в контейнере, просмотреть публикуемые порты и т. п.

Вкладка Images покажет образы на хосте и даст быстрые действия по очистке, запуску или пушу образов.

Добавочные возможности Desktop включают интеграцию с Docker Hub, автоматизированные Dev Environments и плагины.
Включение Kubernetes
Docker Desktop имеет встроенную поддержку Kubernetes, но она отключена по умолчанию. Чтобы включить кластер:
- Нажмите значок шестерёнки в заголовке приложения, откройте настройки.
- Выберите раздел Kubernetes.
- Установите флажок Enable Kubernetes и нажмите Apply & Restart.

Скачивание компонентов и создание локального кластера могут занять несколько минут. Значок статуса Kubernetes в приложении и в трее станет зелёным, когда кластер готов.
Установка kubectl на Ubuntu через snap:
$ sudo snap install kubectlПроверка состояния нод:
$ kubectl get nodesПример вывода:
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane 22m v1.25.0
Создадим Pod и откроем его через сервис NodePort:
$ kubectl run nginx --image nginx:latest
pod/nginx created
$ kubectl expose pod/nginx --port 80 --type NodePort
service/nginx exposed
$ kubectl get servicesОжидаемый вывод:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1
nginx NodePort 10.96.132.212
Порт 30107 можно использовать локально:
$ curl http://localhost:30107Вы должны получить HTML-ответ от NGINX.
Note: Kubernetes в Desktop хорош для разработки и локальной отладки. Для production-окружений используйте управляемые кластеры или специализированные решения вроде MicroK8s, k0s или Minikube в зависимости от требований.
Docker Desktop vs Docker Engine
Ключевые различия:
- Docker Engine работает как системный сервис и запускает контейнеры как процессы на хосте.
- Docker Desktop запускает контейнеры внутри QEMU‑виртуальной машины. Это приводит к большей предсказуемости окружения, но увеличивает потребление ресурсов.
Практические последствия:
- Производительность: Engine в большинстве случаев быстрее и «легковеснее» на Linux, особенно на серверах.
- Совместимость: Desktop обеспечивает одинаковое поведение на Windows/macOS/Linux, полезно в межплатформенных командах.
- Kubernetes: Desktop предоставляет встроенный кластер без установки сторонних инструментов.
Рекомендации:
- Локальная разработка и тестирование, быстрый доступ к GUI, интеграция Dev Environments — выбирайте Docker Desktop.
- Серверы и production — Docker Engine или оркестрация Kubernetes без лишней виртуализации.
Пример: даже в простом состоянии VM Docker Desktop может потреблять ≈2 ГБ оперативной памяти. Docker Engine в том же состоянии практически не использует RAM.
Настройка Docker Engine в Desktop
Вы можете редактировать конфигурацию Docker daemon, используемую Desktop, через настройки:
- Откройте настройки -> Docker Engine.
- В поле JSON введите конфигурационные параметры и нажмите Apply & Restart.
Пример: добавить insecure registry или изменить логирование:
{ “insecure-registries”: [“registry.local:5000”], “log-level”: “warn” }
После применения Desktop перезапустит внутренний daemon.
Настройка лимитов ресурсов
По умолчанию Docker Desktop ограничивает ресурсы VM: половина ядер CPU, 25% RAM системы и swap 1 ГБ. Эти значения можно изменить в настройках -> Resources.

Рекомендации по назначению ресурсов:
- Для лёгкой разработки: 2 ядра, 4 ГБ RAM.
- Для работы с Kubernetes и несколькими сервисами: 4+ ядер и 8+ ГБ RAM.
- Для CI локально или при запуске нескольких контейнеров со сборками: выделяйте больше CPU и RAM.
Всегда нажимайте Apply & Restart после изменения ресурсов.
Типичные проблемы и отладка
Проблема: Docker Desktop не запускается, и в трее нет иконки.
- Проверка: запустите из терминала, чтобы увидеть логи: docker-desktop (GUI) запускается как пользовательское приложение; просмотрите ~/.docker/desktop/log/.
- Решение: перезапустите компьютер, проверьте, нет ли блокировки KVM.
Проблема: конфликт портов с локальным демоном Docker Engine.
- Решение: остановите и отключите systemd‑сервис docker, затем запустите Desktop.
Проблема: медленная работа контейнеров.
- Причина: недостаточно выделенных ресурсов VM или медленный виртуальный диск.
- Решение: увеличьте CPU/RAM, увеличьте размер виртуального диска в Resources.
Проблема: kubectl не видит кластер.
- Проверка: kubectl config view и kubectl get nodes.
- Решение: убедитесь, что контекст kubectl указывает на docker-desktop; перезапустите Desktop.
Проблема: образы не видны между Engine и Desktop.
- Причина: разные runtime/daemon.
- Решение: используйте один инструмент (либо Engine, либо Desktop) или пушьте образы в реестр и подтягивайте.
Краткое руководство по логам и их местоположению:
- Desktop logs: ~/.docker/desktop/log/ и ~/.config/docker/desktop/
- VM logs и диагностика доступны через меню Troubleshoot -> Get support diagnostics.
Ролевые чек-листы перед установкой и при вводе в эксплуатацию
Разработчик:
- Провел бэкап локальных образов и данных.
- Остановил systemd‑сервис docker.
- Проверил доступность KVM.
- Выделил достаточный объём RAM и CPU в Resources.
- Убедился, что kubectl настроен на docker-desktop.
Инженер DevOps:
- Оценил влияние Desktop на CI/CD агент.
- Настроил приватные реестры в Docker Engine конфигурации Desktop.
- Проверил политики безопасности и firewall.
Системный администратор:
- Подтвердил совместимость с корпоративной политикой безопасности.
- Проверил доступ к обновлениям и политике репозитория пакетов.
Playbook развертывания на рабочей станции разработчика
- Отключить локальный Docker Engine: sudo systemctl stop docker && sudo systemctl disable docker
- Проверить KVM: kvm-ok
- Скачать пакет Desktop и добавить репозиторий Docker
- Установить пакет: sudo apt install -y ./docker-desktop-
.deb - Запустить Desktop, принять условия, логин в Docker Hub при необходимости
- Настроить ресурсы и, при необходимости, включить Kubernetes
- Проверить docker version и docker compose version
- Выполнить smoke-test: docker run -d -p 80:80 docker/getting-started
Критерии приёмки
- Docker Desktop запускается и показывает статус “Docker Desktop is running”.
- docker и docker compose доступны в терминале.
- Минимум один контейнер успешно запускается и доступен по указанному порту.
- При включённом Kubernetes kubectl get nodes показывает node со статусом Ready.
Тестовые сценарии и приёмочные критерии
- Тест 1: Установка пакета завершается без ошибок, и GUI запускается.
- Тест 2: docker run отображает контейнер в UI в течение 60 секунд.
- Тест 3: Включение/отключение Kubernetes переключает контекст kubectl на docker-desktop.
- Критерии успешности: все тесты проходят, ошибки логируются и исправляются.
Безопасность и рекомендации по жёсткой настройке
- Ограничьте доступ к Docker Desktop через системные права — не дайте групповому доступу к сокету Docker, если он проброшен.
- Убедитесь, что критичные реестры используют TLS и аутентификацию.
- При необходимости отключите интеграцию с Docker Hub и настройте приватный реестр.
- Обновляйте Desktop и базовые образы регулярно.
Конфиденциальность и заметки по локальному законодательству
Docker Desktop может отправлять диагностические данные и телеметрию. Перед использованием в корпоративной среде проверьте политику конфиденциальности и требования по защите персональных данных. При работе с личными данными используйте шифрование и минимизируйте логирование.
Миграция и совместимость
- Образы, созданные в Docker Desktop, можно пушить в реестр и затем подтянуть на сервер с Docker Engine.
- Не рассчитывайте на прозрачную совместимость сокета Docker между Engine и Desktop; лучше использовать реестр для обмена изображениями.
- Если нужен лёгкий локальный Kubernetes без виртуализации Desktop: рассмотрите MicroK8s или k3s.
Совместимость и заметки по версиям:
- Desktop использует собственную виртуальную среду и может содержать иную версию docker daemon, чем системный Docker Engine.
- Проверяйте версии CLI/daemon при отладке проблем совместимости.
Decision tree для выбора между Docker Desktop и Docker Engine
flowchart TD
A[Нужно GUI и локальный Kubernetes?] -->|Да| B[Выберите Docker Desktop]
A -->|Нет| C[Рабочая нагрузка на сервере?]
C -->|Производительность важна| D[Выберите Docker Engine]
C -->|Локальная разработка только| E[Рассмотрите Docker Engine или легковесные K8s]
B --> F[Убедитесь в наличии KVM и выделите ресурсы]
D --> G[Настройте systemd-сервисы и деплой]Сравнительная таблица решений (вкратце)
- Docker Desktop: GUI, встроенный Kubernetes, разработческая среда, виртуальная машина, средний уровень потребления ресурсов.
- Docker Engine: легковесный, лучший для production, системный демон, не имеет GUI или встроенного K8s.
- MicroK8s/Minikube: альтернативы для локального K8s без полной интеграции Desktop.
Типичные ошибки и когда Desktop не подойдёт
Когда Desktop не подходит:
- На сервере с ограниченными ресурсами (VM/containers должны быть максимально лёгкими).
- Там, где запрещена локальная виртуализация или нестандартное программное обеспечение.
- Если требуется высокая производительность ввода/вывода диска.
Контрпримеры использования:
- CI/CD агенты обычно лучше работают с Docker Engine.
- Легковесные контейнерные среды на production-серверах — Docker Engine.
Краткая сводка перед завершением
Docker Desktop для Linux — это удобный инструмент для разработчиков, который помогает унифицировать рабочую среду между платформами. Он особенно полезен, если вы хотите удобный GUI и встроенный Kubernetes без установки дополнительных инструментов. Однако для production‑серверов и сценариев с высокими требованиями по производительности предпочтительнее Docker Engine.
Summary:
- Убедитесь, что KVM доступен и Docker Engine остановлён перед установкой.
- Настройте ресурсы VM под свои задачи — CPU и RAM критичны для работы K8s.
- Используйте Docker Desktop для разработки и отладки; для production используйте Docker Engine или управляющий Kubernetes.
Important: всегда создавайте резервные копии важных данных и образов перед изменением сервисов контейнеров.
1‑строчная глоссарий
- Docker Desktop — интегрированная среда разработки контейнеров с GUI и встроенным Kubernetes.
- Docker Engine — демон запуска контейнеров на хосте.
- KVM — модуль ядра для аппаратной виртуализации в Linux.
Похожие материалы
Очистить данные использования в Windows 10
MediaTomb: DLNA‑сервер на Linux — установка и настройка
Как исправить ERR_NETWORK_ACCESS_DENIED
Режим невидимости на Mac — как включить
Emby на Linux — установка и настройка