Поиск по сайту:

Как установить и начать работу с Docker Desktop в Linux


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

Docker Desktop исторически был ограничен системами Windows и Mac. Пользователям Linux приходилось устанавливать Docker Engine вручную и взаимодействовать с ним через терминал или отдельный пользовательский интерфейс. Docker анонсировала версию Desktop для Linux на DockerCon 2022, наконец, предлагая паритет функций для всех трех основных платформ. Это руководство покажет вам, как настроить его и начать работу.

Подготовка к запуску рабочего стола Docker

Действия, описанные в этой статье, были протестированы в чистой среде Ubuntu 22.04. Рабочий стол также поддерживается в Ubuntu 21.10, Debian 11 и Fedora 35/36. Документация по конкретному дистрибутиву доступна на веб-сайте Docker.

Для рабочего стола требуется 64-разрядная система с 4 ГБ ОЗУ и включенной аппаратной виртуализацией KVM. Модуль ядра KVM обычно включается автоматически, когда ваш хост поддерживает виртуализацию. Вы можете проверить, выполнив команду kvm-ok:

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Включите виртуализацию в BIOS или UEFI вашей системы, если kvm-ok сообщает об ошибке. Вы также можете попробовать вручную загрузить модуль ядра KVM, используя modprobe:

# 1/2
$ sudo modprobe kvm

# 2/2 INTEL ONLY
$ sudo modprobe kvm_intel

# 2/2 AMD ONLY
$ sudo modprobe kvm_amd

Docker Desktop не предназначен для работы вместе с Docker Engine. Вам следует остановить службу Docker, если вы уже использовали Docker Engine на своем компьютере. Это уменьшит потребление ресурсов и сведет к минимуму риск конфликтов между Engine и Desktop.

$ sudo service docker stop

Установка рабочего стола Docker

Пакет Docker Desktop еще недоступен в репозиториях, поэтому его необходимо получить вручную. Загрузите нужный пакет для вашей операционной системы, используя ссылки в документации.

$ wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.12.0-amd64.deb

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

$ sudo apt update
$ sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# Download the GPG key used to sign the packages in the repository
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Add the repository to your package sources list
$ 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 install:

$ sudo apt install -y ./docker-desktop-4.12.0-amd64.deb

Теперь Docker Desktop должен появиться в списке ваших приложений.

Использование рабочего стола Docker

Запустите Docker Desktop из панели запуска приложений вашей операционной системы. Вы должны увидеть значок кита Docker на панели задач. При нажатии на значок отображается меню панели задач Docker.

Процесс инициализации первого запуска может занять пару минут. Анимация значка остановится, а строка состояния в верхней части меню изменится на «Docker Desktop запущен», когда Docker будет готов к использованию. Щелкните элемент «Панель инструментов» в верхней части меню, чтобы открыть пользовательский интерфейс, если он не появляется автоматически.

Вам будет предложено принять условия обслуживания, а затем вы попадете на экран «Контейнеры». При желании вы можете войти в Docker Hub, нажав кнопку «Войти» в строке заголовка и следуя подсказкам.

Попробуйте запустить docker и docker compose в своем терминале, чтобы проверить, доступны ли интерфейсы командной строки:

$ 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. Щелкнув значок с тремя точками справа от таблицы, вы увидите список действий, которые вы можете выполнить в Docker Desktop, например, открытие терминала внутри контейнера или посещение опубликованных портов в вашем браузере.

Вкладка «Изображения» в левой части экрана содержит таблицу всех образов контейнеров, присутствующих на вашем хосте. Доступны элементы управления для очистки неиспользуемых образов, быстрого запуска нового контейнера из образа, а также передачи и извлечения образов между различными реестрами.

Вы можете получить больше информации об использовании Docker Desktop в документации. Функциональность охватывает многие команды командной строки docker CLI, а также дополнительные концепции более высокого уровня, такие как среды разработчика для совместного использования кода в процессе работы.

Включение Kubernetes

В Docker Desktop интегрирована поддержка Kubernetes, но она не включена по умолчанию. Включите его, щелкнув значок шестеренки настроек в строке заголовка приложения, а затем выбрав «Kubernetes» в меню слева.

Установите флажок «Включить Kubernetes» и нажмите кнопку «Применить и перезапустить» в правом нижнем углу. Докеру может потребоваться несколько минут, чтобы получить компоненты Kubernetes и создать кластер. Значок состояния Kubernetes появится в левом нижнем углу приложения рядом со значком Docker. Он станет зеленым, когда Kubernetes будет готов к использованию. Статус Kubernetes также отображается в верхней части меню панели задач Docker Desktop.

Затем установите Kubectl. Это интерфейс командной строки, используемый для взаимодействия с вашим кластером Kubernetes. Официальный пакет Snap — самый простой способ добавить его в Ubuntu:

$ sudo snap install kubectl

Теперь попробуйте использовать Kubectl для доступа к вашему кластеру:

$ kubectl get nodes
NAME             STATUS   ROLES           AGE   VERSION
docker-desktop   Ready    control-plane   22m   v1.25.0

Узел docker-desktop отображается как Готово, поэтому вы можете приступить к созданию модулей:

$ kubectl run nginx --image nginx:latest
pod/nginx created

Предоставьте свой Pod с помощью сервиса:

$ 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       <none>        443/TCP        23m
nginx        NodePort    10.96.132.212   <none>        80:30107/TCP   75s

Номер порта: 30107. Используйте этот порт для доступа к вашему сервису и получения целевой страницы NGINX по умолчанию:

$ curl http://localhost:30107
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

Ваш кластер Kubernetes полностью готов к работе. Он будет запускаться автоматически при каждом запуске Docker Desktop.

Docker Desktop против Docker Engine

Docker Engine полностью отделен от Docker Desktop. Docker Engine запускает контейнеры как процессы прямо на вашем хосте. Он использует системную службу для запуска демона Docker. Интерфейс командной строки docker нацелен на этот экземпляр демона, когда вы вводите команды.

Docker Desktop запускает ваши контейнеры внутри виртуальной машины QEMU. Вам не нужно напрямую взаимодействовать с QEMU, поскольку создание виртуальной машины и управление ею выполняется за вас. Запуск Docker Desktop автоматически запускает виртуальную машину; выход из приложения закроет его.

Архитектура виртуальной машины была необходима для запуска Docker в системах Windows и Mac. Он обеспечивает предсказуемую среду для размещения контейнеров Linux. Команда Docker решила продолжать использовать виртуальные машины для рабочего стола в Linux, чтобы предотвратить возникновение несоответствий между платформами.

Хотя виртуальная машина не влияет на повседневное использование Docker, это более тяжелое решение, которое требует больше ресурсов, чем Docker Engine. Вы можете ожидать, что виртуальная машина будет потреблять около 2 ГБ ОЗУ в режиме ожидания, даже если контейнеры не запущены. В той же ситуации потребление памяти Docker Engine было бы незначительным.

Это означает, что Docker Engine остается лучшим способом запуска контейнеров в Linux в производственных средах или там, где производительность имеет решающее значение. Рабочий стол — отличный вариант для разработчиков, которые хотят использовать тот же полностью интегрированный рабочий процесс, что и коллеги на Windows и Mac. Рабочий стол также является лучшим выбором, если вы хотите использовать Kubernetes без добавления каких-либо дополнительных инструментов. Вам понадобится выделенная среда Kubernetes, такая как Minikube или MicroK8s, если вы используете Docker Engine.

Настройка демона Docker рабочего стола

Вы можете настроить конфигурацию демона Docker, используемую Desktop, щелкнув значок шестеренки настроек в строке заголовка и перейдя на вкладку «Docker Engine» в левой части экрана.

Введите или вставьте свои изменения в предоставленный ввод, затем нажмите «Применить и перезапустить» в правом нижнем углу.

Настройка лимитов ресурсов

Docker Desktop автоматически ограничивает ресурсы, которые может потреблять его виртуальная машина. По умолчанию это половина от общего числа доступных процессорных ядер, 25% вашей системной памяти и файл подкачки размером 1 ГБ.

Эти ограничения можно изменить, перейдя на экран настроек Docker Desktop и щелкнув вкладку «Ресурсы» в меню слева. Используйте ползунки, чтобы настроить шапку для каждого ресурса. Вы можете изменить размер виртуального диска, используемого для хранения данных виртуальной машины, прокрутив экран вниз. Когда закончите, нажмите кнопку «Применить и перезапустить» в правом нижнем углу.

Краткое содержание

Docker Desktop — это решение для контейнеризации, ориентированное на разработчиков, которое сочетает в себе интерфейс командной строки docker с универсальным графическим интерфейсом и встроенной поддержкой Kubernetes. Появление рабочего стола в Linux означает, что команды разработчиков могут стандартизировать согласованную цепочку инструментов, независимо от предпочтений платформы отдельных инженеров.

Docker Desktop лучше всего рассматривать как альтернативу Docker Engine. Он предоставляет собственную контейнерную среду, включая виртуализированный Docker Engine и полный набор интерфейсов командной строки Docker. Вы не можете использовать графический интерфейс рабочего стола с существующей установкой Docker Engine. Рабочий стол больше всего подходит для рабочих станций разработчиков, тогда как Docker Engine следует использовать на производственных серверах, где вам не нужен графический интерфейс и вы хотите избежать накладных расходов, связанных с запуском виртуальной машины.