Найти тему
Yodo чат-бот учитель

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

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 вместо него, вам нужно настроить его вручную.

Способы установки Docker

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

  • Большинство пользователей устанавливают репозитории Docker и выполняют установку из них, что облегчает задачи установки и обновления. Это рекомендуемый подход.
  • Некоторые пользователи загружают DEB-пакет и устанавливают его вручную, а также управляют обновлениями полностью вручную. Это полезно в таких ситуациях, как установка Docker на закрытых системах без доступа к интернету.
  • В средах тестирования и разработки некоторые пользователи предпочитают использовать автоматизированные удобные скрипты для установки Docker.

Установка Docker с использованием репозитория

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

Настройка репозитория

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

sudo apt-get update

sudo apt-get install \

apt-transport-https\

ca-certificates \

curl \

gnupg \

lsb-release

2. Добавьте официальный GPG-ключ Docker:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

3. Используйте следующую команду для установки стабильного хранилища. Чтобы добавить репозиторий nightly или test, добавьте слово 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

Установите Docker Engine

  1. Обновите индекс пакетов apt и установите последнюю версию Docker Engine и containerd, или перейдите к следующему шагу для установки определенной версии:

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io</i>

Несколько репозиториев Docker?

Если у вас включено несколько репозиториев Docker, установка или обновление без указания версии в команде apt-get install или apt-get update всегда устанавливает самую высокую возможную версию, что может не соответствовать вашим потребностям в стабильности.

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

a. Перечислите версии, доступные в вашем репозитории:

apt-cache madison docker-ce

-2

b.Установите конкретную версию docker, используя строку версии из второго столбца, например, 5:18.09.1~3-0~ubuntu-xenial.

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

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

sudo docker run hello-world

Эта команда загружает тестовый образ и запускает его в контейнере. После запуска контейнер выводит информационное сообщение и завершает работу.

Docker Engine установлен и запущен. Группа docker создана, но в нее не добавлены пользователи. Для запуска команд Docker необходимо использовать sudo. Продолжите работу с Linux postinstall, чтобы разрешить непривилегированным пользователям выполнять команды Docker и другие дополнительные шаги по настройке.

Обновление движка Docker Engine

Чтобы обновить Docker Engine, сначала выполните sudo apt-get update, а затем следуйте инструкциям по установке, выбирая новую версию, которую вы хотите установить.

Пакетная установка Docker

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

  1. Зайдите на сайт https://download.docker.com/linux/ubuntu/dists/, выберите версию Ubuntu, затем перейдите в pool/stable/, выберите amd64, armhf или arm64 и загрузите .deb-файл для версии Docker Engine, которую вы хотите установить.

Примечание: Чтобы установить пакет nightly или test (предварительный выпуск), измените слово stable в приведенном выше URL на nightly или test.

2. Установите Docker Engineна Ubuntu, изменив указанный ниже путь на путь, по которому вы загрузили пакет Docker.

sudo dpkg -i /path/to/package.deb

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

3. Убедитесь, что 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

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

Использовать Docker как непривилегированный пользователь или установить в режиме rootless?

Сценарий установки требует привилегий root или sudo для установки и использования Docker. Если вы хотите предоставить доступ к Docker пользователям без root, обратитесь к шагам после установки для Linux. Docker также можно установить без прав root или настроить для работы в режиме rootless. Инструкции по запуску Docker в режиме rootless см. в разделе Запуск демона Docker от имени пользователя, не являющегося root-пользователем (режим rootless).

Установка предварительных версий

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

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

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

sudo sh test-docker.sh

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

Если вы установили Docker на Ubuntu с помощью удобного скрипта, вам следует обновить 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 на нашем курсе по Devops

Оригинал тут