Установка Docker Engine на Ubuntu.
Чтобы начать работу с Docker Engine на Ubuntu, убедитесь, что вы соответствуете предварительным условиям, а затем установите Docker.
Предварительные требования
Требования к ОС
Для установки Docker Engine вам нужна 64-битная версия одной из этих Ubuntu версий:
- Ubuntu Hirsute 21.04
- Ubuntu Groovy 20.10
- Ubuntu Focal 20.04 (LTS)
- Ubuntu Bionic 18.04 (LTS)
Docker Engine поддерживается на архитектурах x86_64
(или amd64
), armhf
, arm64
, и s390x
.
Ubuntu 16.04 LTS “Xenial Xerus” конец поддержки.
Ubuntu Linux 16.04 LTS достиг конца своего пятилетнего окна LTS 30 апреля 2021 года и больше не поддерживается. Docker больше не выпускает пакеты для этого распределения (включая патч и релизы безопасности). Пользователи, работающие на Docker на Ubuntu 16.04, рекомендуются обновлять свою систему к поддерживаемой в данный момент LTS версии Ubuntu.
Удаление старых версий.
Старые версии Docker назывались docker
, docker.io
, или docker-engine
. Если они установлены, удалите их:
sudo apt-get remove docker docker-engine docker.io containerd runc
Это нормально, если apt-get
сообщает, что ни одна из этих пакетов не установлена.
Содержание /var/lib/docker/
, включая образы, контейнеры, томы и сети, сохраняется. Если вам не нужно сохранять существующие данные и хотите начать с чистой установки, обратитесь к разделу Удаление Docker Engine внизу этой страницы.
Поддерживаемые драйверы хранения.
Docker Engine на Ubuntu поддерживает драйверы хранения overlay2
, aufs
и btrfs
.
По умолчанию Docker Engine использует драйвер хранения overlay2
. Если вместо этого нужно использовать aufs
, вам нужно настроить его вручную. См. Использование драйвера хранения AUFS
Методы установки.
Вы можете установить Docker Engine различными способами, в зависимости от ваших потребностей:
-
Большинство пользователей устанавливают репозиторий Docker и устанавливают из них, для облегчения установки и обновления задач. Это рекомендуемый подход.
-
Некоторые пользователи загружают пакет DEB и устанавливают его вручную и устанавливают его вручную и полностью управляют обновлениями вручную. Это полезно в таких ситуациях, как установка Docker на физически-изолированных системах, не имеющих доступа к Интернету.
-
В среде тестирования и разработки некоторые пользователи выбирают автоматизированные сервисные скрипты для установки Docker.
Установка с использованием репозитория.
Перед первой установкой Docker Engine на новой машине необходимо настроить репозиторий Docker. После этого можно установить и обновить Docker из хранилища.
Настройка репозитория.
-
Обновите индекс пакетов
apt
и установите пакеты, чтобыapt
мог использовать хранилище через HTTPS:$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release
- Добавьте официальный ключ GPG Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-
Используйте следующую команду для установки стабильного хранилища. Для добавления ночного или тестового хранилища добавьте слово
nightly
илиtest
(или оба) после словаstable
стабильное в следующих командах. Узнайте о ночных и тестовых каналах.Примечание: Подкоманда
lsb_release -cs
ниже возвращает имя вашего дистрибутива Ubuntu, напримерxenial
. Иногда в дистрибутиве Linux Mint вам может потребоваться изменить$(lsb_release -cs)
на родительский дистрибутив Ubuntu. Например, если вы используетеLinux Mint Tessa
, вы можете использоватьbionic
. Docker не предоставляет никаких гарантий на непроверенные и неподдерживаемые дистрибутивы Ubuntu.x86_64 / amd64
$ echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
armhf
$ echo \ "deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
arm64
$ echo \ "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
s390x
$ echo \ "deb [arch=s390x signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Установка Docker Engine.
-
Обновите индекс пакетов
apt
и установите последнюю версию Docker Engine и containerd, или перейдите к следующему шагу для установки конкретной версии:$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io
У вас несколько репозиториев Docker?
Если у вас включено несколько репозиториев Docker, установка или обновление без указания версии в команде
apt-get install
илиapt-get update
всегда устанавливает максимально возможную версию, что может не соответствовать вашим потребностям в стабильности. -
Чтобы установить определенную версию Docker Engine, перечислите доступные версии в репозитории, затем выберите и установите:
a. Список версий, доступных в вашем репозитории:
$ apt-cache madison docker-ce docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
b. Установите конкретную версию с помощью строки версии со второго столбца, например,
5:18.09.1~3-0~ubuntu-xenial
.$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
- Убедитесь, что Docker Engine установлен правильно, запустив образ
hello-world
.
$ sudo docker run hello-world
Эта команда загружает тестовый образ и запускает его в контейнере. Когда контейнер запускается, он печатает сообщение и выходит.
Docker Engine установлен и запущен. Группа docker
создана, но пользователи в нее не добавлены. Для выполнения команд Docker необходимо использовать sudo
. Продолжайте постинсталляцию Linux , чтобы позволить непривилегированным пользователям выполнять команды Docker и для других необязательных шагов по настройке.
Обновление движка Docker Engine.
Чтобы обновить Docker Engine, сначала запустите sudo apt-get update
, затем следуйте инструкциям по установке, выбирая новую версию, которую вы хотите установить.
Установка из пакета.
Если вы не можете использовать репозиторий Docker для установки Docker Engine, вы можете загрузить .deb
- файл для вашего выпуска и установить его вручную. Вам нужно загружать новый файл каждый раз, когда вы хотите обновить Docker.
-
Зайдите на https://download.docker.com/linux/ubuntu/dists/, выберите версию Ubuntu, затем перейдите в
pool/stable/
, выберитеamd64
,armhf
,arm64
, илиs390x
, и загрузите файл.deb
для версии Docker Engine, которую вы хотите установить.Примечание
Чтобы установить пакет nightly или test (предварительный выпуск), измените слово
stable
в приведенном выше URL наnightly
илиtest
. Узнайте о ночных и тестовых каналах. -
Установите Docker Engine, изменив указанный ниже путь на путь, по которому вы загрузили пакет Docker.
$ sudo dpkg -i /path/to/package.deb
Демон Docker запускается автоматически.
- Убедитесь, что Docker Engine установлен правильно, запустив образ
hello-world
.
$ sudo docker run hello-world
Эта команда загружает тестовый образ и запускает его в контейнере. Когда контейнер запускается, он печатает сообщение и выходит.
Docker Engine установлен и запущен. Группа docker
создана, но пользователи в нее не добавлены. Для выполнения команд Docker необходимо использовать sudo
. Продолжите раздел Шаги после установки для Linux , чтобы разрешить непривилегированным пользователям выполнять команды Docker и другие дополнительные шаги по настройке.
Обновление движка Docker Engine.
Чтобы обновить Docker Engine, загрузите новый файл пакета и повторите процедуру установки, указывая на новый файл.
Установка осуществляется с помощью сервисного скрипта.
Docker предоставляет сервисный скрипт на 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 sh ./get-docker.sh
Этот пример загружает скрипт с 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 установлен. Служба docker
запускается автоматически в дистрибутивах на базе Debian. В дистрибутивах на базе RPM, таких как CentOS, Fedora, RHEL или SLES, вам нужно запустить его вручную с помощью соответствующей команды systemctl
или service
. Как следует из сообщения, пользователи, не являющиеся root-пользователями, по умолчанию не могут выполнять команды Docker.
Как использовать Docker в качестве непривилегированного пользователя или устанавливать в режиме rootless?
Сценарий установки требует привилегий
root
илиsudo
для установки и использования Docker. Если вы хотите предоставить доступ к Docker пользователям, не являющимся root-пользователями, обратитесь к шагам после установки для Linux. Docker также может быть установлен без правroot
или настроен на работу в режиме без привелегий root. Инструкции по запуску Docker в режиме rootless см. в разделе Запуск демона Docker от имени пользователя, не являющегося root-пользователем (режим rootless).
Установка предварительных выпусков
Docker также предоставляет сервисный скрипт на test.docker.com для установки предварительных выпусков Docker на Linux. Этот скрипт эквивалентен сценарию на get.docker.com
, но настроит менеджер пакетов для включения канала "test" из нашего хранилища пакетов, который включает как стабильные, так и предварительные релизы (beta версии, релиз-кандидаты) Docker. Используйте этот скрипт для раннего доступа к новым выпускам и для оценки их в тестовой среде, прежде чем они будут выпущены как стабильные.
Для установки последней версии Docker на Linux с канала "test" запустите следующие действия:
$ curl -fsSL https://test.docker.com -o test-docker.sh $ sudo sh test-docker.sh <...>
Обновление Docker после использования сервисного скрипта.
Если вы установили Docker с помощью сервисного скрипта, то вы должны обновить Docker с помощью менеджера пакетов напрямую. Нет преимущества повторного запуска сервисного скрипта, и это может вызвать проблемы, если он пытается переустановить хранилища, которые уже были добавлены в машину хоста.
Удаление Docker Engine
-
Удалите пакеты Docker Engine, CLI и Containerd:
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io
- Образы, контейнеры, тома или настроенные файлы конфигурации на вашем хосте не удаляются автоматически. Чтобы удалить все образы, контейнеры и тома:
$ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
Вы должны удалить все отредактированные файлы конфигурации вручную.
Следующие шаги
- Перейдите к разделу Шаги после установки Docker для Linux.
- Просмотрите темы раздела Разработка с Docker, чтобы узнать, как создавать новые приложения с помощью Docker.