Установка 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.