В стандартных репозиториях ОС 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.