Установка Docker CE в Debian 9 (Stretch) и Debian 10 (Buster)

В стандартных репозиториях ОС Debian уже присутствует пакет для Docker, однако, обычно, это не то, что требуется разработчикам, поскольку эти версии считаются устаревшими.

Правильный подход — установить пакет Docker Community Edition (CE) из официального репозитория Docker, что бы и рассмотрим далее.

Сначала вам необходимо удалить все старые пакеты, которые у вас могут быть установлены:

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Поскольку мы рассматриваем установку бесплатной версии Docker, то мы будем устанавливать Docker CE, который в официальном репозитории поставщика называется docker-ce.

Docker CE официально поддерживает следующие драйверы хранилищ образов и томов в Debian Linux: overlay2, aufs, btrfs. По умолчанию, будет использоваться драйвер Overlay2, поскольку он обеспечивает высокую производительность.

Самый простой и удобный способ установки Docker CE — подключение репозиториев Docker и установка с помощью Apt.

Установка из репозитория

Для установки из репозитория необходимо подключить репозиторий Docker к вашему Apt:

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Убедитесь, что отпечаток ключа репозитория правильный с помощью поиска:

$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

Добавим репозиторий в Apt:

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

Теперь можно установить все пакеты, которые требуются для работы Docker:

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Проверим работоспособность установленного Docker:

$ sudo docker run hello-world

Обновление Docker

Для обновления достаточно воспользоваться этой же инструкцией после выполнения apt-get update:

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Установка автоматическим скриптом

Существует способ, который позволяет установить Docker CE с помощью выполнения всего пары команд. Этот способ не рекомендуется использовать при настройке продуктовой среды.

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

Выполнение команд Docker от непривилегированного пользователя

После выполнения предыдущих действий вы сможете использовать команду docker только через повышение привилегий (sudo) или от пользователя root. Довольно часто это неудобно. Существует простой способ дать непривилегированному пользователю возможность выполнять выполнять команды Docker с помощью добавления пользователя в группу Docker:

$ sudo usermod -aG docker username

Теперь от имени данного пользователя можно выполнить команды Docker без указания sudo:

$ docker run hello-world
$ docker images
$ docker ps

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