Устанавливает Docker Engine на Debian

Чтобы начать работу с Docker Engine в Debian, убедиться, что вы соответствуете предпосылки, а затем устанавливает Docker способы установки.

Предпосылки

Требования ОС

Чтобы установить Docker Engine, вам потребуется 64-разрядная версия одной из данных версий Debian или Raspbian:

  • Debian Bullseye 11 (стабильная)

  • Debian Buster 10 (старая стабильная версия)

  • Raspbian Bullseye 11 (стабильный)

  • Raspbian Buster 10 (старая версия)

Docker Engine совместим с архитектурами x86_64 (или amd64), armhf и arm64.

Удаляет старые версии

Старые версии Docker носили имена docker, docker.io или docker-engine. Удаляет все такие старые версии, прежде чем пытаться установить новую версию:

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

Ничего страшного, если apt-get сообщает, что ни один из данных пакетов не установлен.

Образы, контейнеры, тома и сети, хранящиеся в /var/lib/docker/, не удаляются автоматически при удалении Docker. Если вы хотите начать с чистой установки и предпочитаете очистить все существующие данные, обратитесь к разделу удаляет движок Docker.

Методы установки

Вы можете установить Docker Engine разными способами, в зависимости от ваших потребностей:

  • Docker Engine поставляется в комплекте с Docker Desktop для Linux. Это самый простой и быстрый способ начать.

  • Вы также можете настроить и установить Docker Engine из Docker apt установить с помощью репозитория.

  • установить из пакета и управлять обновлениями вручную.

  • Использование удобных скриптов. Рекомендуется только для сред тестирования и разработки. Это единственный подход, доступный для Raspbian.

Установить с помощью репозитория

Перед первой установкой Docker Engine на новый хост-компьютер необходимо настроить репозиторий Docker. После этого вы можете установить и обновить Docker из репозитория.

Примечание

Пользователи Raspbian не могут использовать данный метод.

Для Raspbian установка с использованием репозитория пока не поддерживается. Вместо этого вы должны использовать удобный сценарий.

Настраивает репозиторий

  1. Обновляет индекс пакетов apt и устанавливает пакеты, чтобы позволить apt использовать репозиторий через HTTPS:

    $ sudo apt-get update
    
    $ sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    
  2. Добавляет официальный GPG-ключ Docker:

    $ sudo mkdir -p /etc/apt/keyrings
    $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
  3. Используйте следующую команду для настройки репозитория:

    $ echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

Устанавливает движок Docker

Эта процедура работает для Debian на x86_64/amd64, armhf, arm64 и Raspbian.

  1. Обновляет индекс пакета apt:

    $ sudo apt-get update
    

    Получение ошибки GPG при запуске apt-get update?

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

    $ sudo chmod a+r /etc/apt/keyrings/docker.gpg
    $ sudo apt-get update
    
  2. Устанавливает Docker Engine, containerd и Docker Compose.

Последний

Чтобы установить последнюю версию, выполните:

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

Конкретная версия

Чтобы установить определенную версию Docker Engine, начать со списка доступных версий в репозитории:

# List the available versions:
$ apt-cache madison docker-ce \| awk '{ print $3 }'

5:18.09.1\ :sub:`3-0`\ debian-stretch
5:18.09.0\ :sub:`3-0`\ debian-stretch 18.06.1\ :sub:`ce`\ 3-0~debian
18.06.0\ :sub:`ce`\ 3-0~debian

Выбрать нужную версию и устанавливает:

$ VERSION_STRING=5:18.09.0~3-0~debian-stretch

$ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-compose-plugin
  1. Убедиться, что установка Docker Engine прошла успешно, запустив образ hello-world:

$ sudo docker run hello-world

Эта команда загружает тестовый образ и запускает его в контейнере. Когда контейнер запускается, он печатает подтверждающее сообщение и завершает работу.

Вы успешно установили и запустили Docker Engine. Группа пользователей docker существует, но не содержит пользователей, поэтому для запуска команд Docker необходимо использовать sudo. Перейдите к Linuxpost-install <engine_install_linux-postinstall>, чтобы позволить непривилегированным пользователям запускать команды Docker и выполнять другие необязательные действия по настройке.

Обновляет движок Docker

Чтобы обновить Docker Engine, следуйте установить docker движок, выбрав новую версию, которую хотите установить.

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

Если вы не можете использовать репозиторий Docker apt для установки Docker Engine, вы можете загружает файл deb для своего релиза и установить его вручную. Вам нужно загружать новый файл каждый раз, когда вы хотите обновить Docker Engine.

  1. Go на https://download.docker.com/linux/debian/dists/.

  2. Выбрать свою версию Debian в списке.

  3. от Go до pool/stable/ и выбрать подходящую архитектуру (amd64, armhf, arm64 или s390x).

  4. Загружает следующие файлы deb для пакетов Docker Engine, CLI, containerd и Docker Compose:

  • containerd.io_<version>_<arch>.deb

  • docker-ce_<version>_<arch>.deb

  • docker-ce-cli_<version>_<arch>.deb

  • docker-compose-plugin_<version>_<arch>.deb

  1. Устанавливает пакеты .deb. Обновляет пути в следующем примере до места, где вы загрузили пакеты Docker.

$ sudo dpkg -i ./containerd.io_<version>_<arch>.deb \      ./docker-ce_<version>_<arch>.deb \      ./docker-ce-cli_<version>_<arch>.deb \      ./docker-compose-plugin_<version>_<arch>.deb

Демон Docker запускается автоматически.

  1. Убедиться, что установка Docker Engine прошла успешно, запустив образ hello-world:

$ sudo service docker start

$ sudo docker run hello-world

Эта команда загружает тестовый образ и запускает его в контейнере. Когда контейнер запускается, он печатает подтверждающее сообщение и завершает работу.

Вы успешно установили и запустили Docker Engine. Группа пользователей docker существует, но не содержит пользователей, поэтому для запуска команд Docker необходимо использовать sudo. Перейдите к Linuxpost-install <engine_install_linux-postinstall>, чтобы позволить непривилегированным пользователям запускать команды Docker и выполнять другие необязательные действия по настройке.

Обновляет движок Docker

Чтобы обновить Docker Engine, загружает новый файл пакета и повторяет установить из пакета, указав на новый файл.

Устанавливает с помощью удобного скрипта

Docker предоставляет удобный скрипт по адресу https://get.docker.com/ для неинтерактивной установки Docker в среду разработки. Удобный сценарий не рекомендуется для производственных сред, но он полезен для создания сценария подготовки, адаптированного к вашим потребностям. Также обратитесь к инструкциям по установке с использованием репозитория, чтобы узнать об этапах установки с использованием репозитория пакетов. Исходный код сценария является открытым, и его можно найти в файле репозиторий docker-install на GitHub.

Всегда проверяйте сценарии, загруженные из Интернета, перед их локальным запуском. Перед установкой ознакомьтесь с потенциальными рисками и ограничениями скрипта удобства:

  • Для запуска скрипта требуются привилегии root или sudo.

  • Сценарий пытается определить ваш дистрибутив и версию Linux и настроить для вас систему управления пакетами.

  • Сценарий не позволяет настраивать большинство параметров установки.

  • Скрипт устанавливает зависимости и рекомендации, не запрашивая подтверждения. Это может установить большое количество пакетов, в зависимости от текущей конфигурации вашего хост-компьютера.

  • По умолчанию скрипт устанавливает последнюю стабильную версию Docker, containerd и runc. При использовании этого скрипта для подготовки компьютера это может привести к неожиданному обновлению основных версий Docker. Всегда проверяйте обновления в тестовой среде перед развертыванием в производственных системах.

  • Сценарий не предназначен для обновления существующей установки Docker. При использовании сценария для обновления существующей установки зависимости могут не обновиться до ожидаемой версии, что приведёт к устаревшим версиям.

Примечание

Совет: просмотрите шаги скрипта перед запуском

Вы можете выполнить сценарий с параметром DRY_RUN=1, чтобы узнать, какие шаги будет выполнять сценарий при вызове:

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

В этом примере сценарий загружается с https://get.docker.com/ и запускается для установки последней стабильной версии Docker в Linux:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>

Вы успешно установили и запустили Docker Engine. Служба docker запускается автоматически в дистрибутивах на основе Debian. В дистрибутивах на основе RPM, таких как CentOS, Fedora, RHEL или SLES, вам необходимо выполнить его вручную с помощью соответствующей команды systemctl или service. Как указано в сообщении, пользователи без полномочий root не могут запускать команды Docker по умолчанию.

Примечание

Использовать Docker в качестве непривилегированного пользователя или установить в режиме без прав root?

Сценарию установки требуются привилегии root или sudo для установки и использования Docker. Если вы хотите предоставить пользователям без полномочий root доступ к Docker, обратитесь к файлу действия после установки для Linux. Вы также можете установить Docker без привилегий root или настроить его для работы в режиме без root. Инструкции по запуску Docker в режиме без полномочий root см. в статье о запуске демона Docker от имени пользователя без полномочий root режим без корней.

Устанавливает предварительные версии

Docker также предоставляет удобный скрипт по адресу https://test.docker.com/ для установки предварительных релизов Docker в Linux. Данный сценарий аналогичен сценарию на get.docker.com, но настраивает ваш менеджер пакетов на использование тестового канала репозитория пакетов Docker. В тестовый канал входят как стабильные, так и пре-релизы (бета-версии, релиз-кандидаты) Docker. Используйте данный скрипт, чтобы получает ранний доступ к новым выпускам и вычислить их в тестовой среде, прежде чем они будут выпущены как стабильные.

Чтобы установить последнюю версию Docker на Linux из тестового канала, выполните:

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

Обновляет Docker после использования удобного скрипта

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

Удаляет Docker Engine

  1. Удаляет пакеты Docker Engine, CLI, containerd и Docker Compose:

    $ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras
    
  2. Образы, контейнеры, тома или пользовательские файлы конфигурации на вашем хосте не удаляются автоматически. Чтобы удаляет все образы, контейнеры и тома:

    $ sudo rm -rf /var/lib/docker
    $ sudo rm -rf /var/lib/containerd
    

Вы должны удаляет все отредактированные файлы конфигурации вручную.

Следующие шаги