Docker - популярная программа для контейнеризации. Контейнеры – стандартная единица ПО, которая упаковывает код и все его зависимости, для того чтобы приложение можно было быстро и надежно запустить на разных операционных системах и в разных вычислительных средах.
С технической точки зрения контейнером называют запущенный процесс, который изолирован от других процессов и имеет доступ к ресурсам компьютера. Дальше рассмотрим установку Docker в Debian 11, а также запуск первого приложения.
Установить можно двумя путями - при помощи стандартных репозиториев Debian или официального репозитория Docker. В репозиториях Debian содержится не самая свежая версия, поэтому рассмотрим способ установки из официального репозитория Docker.
Перед добавление репозитория необходимо обновить список пакетов выполнив команду:
$ sudo apt update
Также установить дополнительные пакеты, которые необходимы для работы с удалёнными репозиториями. Для установки данных пакетов необходимо выполнить команду:
$ sudo apt -y install ca-certificates curl gnupg lsb-release
Дальше
скачиваем и добавляем PGP ключ от репозитория. Для этого необходимо выполнить команду:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Для добавления репозитория необходимо выполнить команду:
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Устанавливаем пакет
Для установки сначала необходимо обновить списки пакетов чтобы в системе появился новый репозиторий. Для этого достаточно выполнить команду:
$ sudo apt update
В завершении
можно установить и дополнительные пакеты. Установка производится при помощи команды:
$ sudo apt -y install docker-ce docker-ce-cli containerd.io
Слово ce в названии пакета docker-ce расшифровывается как community что означает что будет установлена бесплатная версия (она же версия от сообщества). Теперь вы знаете как установить docker debian.
После установки, по умолчанию он будет выключен. Чтобы запустить программу необходимо выполнить команду:
$ sudo systemctl start docker
Для того чтобы он запускался вместе с операционной системой его необходимо добавить в автозагрузку при помощи команды:
$ sudo systemctl enable docker
Добавляем пользователя
По умолчанию использовать и выполнять его команды в терминале может только пользователь root. Если выполнить какую-либо команду от обычного пользователя, то в терминале отобразится следующая ошибка:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Для запуска команды от обычного пользователя и без использования команды sudo необходимо добавить пользователя в группу docker. Группа docker создается автоматически при установке. Однако если по какой-то причине она не создалась автоматически её необходимо создать вручную выполнив:
$ sudo groupadd docker
Далее для добавления текущего пользователя в группу docker необходимо выполнить:
$ sudo usermod -aG docker $USER
Переменная $USER означает что в группу docker будет добавлен текущий пользователь, от имени которого запущена сессия. Данная переменная присутствует во всех современных дистрибутивах Linux. Также стоит отметить, что группа docker предоставляет привилегии, эквивалентные привилегиям пользователя root.
После добавления пользователя необходимо перелогиниться в системе и только потом можно запустить любую команду Docker для проверки. В качестве примера была выполнена команда docker ps которая отображает список запущенных контейнеров:
$ docker ps
Как видно на скриншоте выше выполнилась без ошибок и от лица обычного пользователя.
Для полноценной проверки Docker можно загрузить тестовый образ с hello-world для проверки. Для этого необходимо выполнить:
$ docker run hello-world
Команда docker run загрузит образ программы из онлайн-репозитория docker hub - официального реестра хранения образов программного обеспечения от Docker который используется по умолчанию и автоматически запустит его. В примере была выведена фраза Hello from Docker! которая означает что образ успешно был скачен и запущены.