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

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

Предпосылки

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

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

  • Федора 34

  • Федора 35

  • Федора 36

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

Старые версии Docker назывались docker или docker-engine. Если они установлены, удаляет их вместе со связанными зависимостями.

$ sudo dnf remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

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

Содержимое /var/lib/docker/, включая образы, контейнеры, тома и сети, сохраняется. Пакет Docker Engine теперь называется docker-ce.

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

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

  • Большинство пользователей настраивают репозитории Docker (установить с помощью репозитория) и устанавливают из них для упрощения задач установки и обновления. Это рекомендуемый подход.

  • Некоторые пользователи загружают пакет RPM и устанавливают его вручную (установить из пакета) и полностью управляют обновлениями вручную. Это полезно в таких ситуациях, как установка Docker в системах с воздушным зазором без доступа к Интернету.

  • В средах тестирования и разработки некоторые пользователи предпочитают использовать автоматизированные удобные сценарии для установки Docker.

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

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

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

Устанавливает пакет dnf-plugins-core (который предоставляет команды для управления вашими репозиториями DNF) и настраивает репозиторий.

$ sudo dnf -y install dnf-plugins-core

$ sudo dnf config-manager \
    --add-repo \
    https://download.docker.com/linux/fedora/docker-ce.repo

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

  1. Устанавливает последнюю версию Docker Engine, containerd и Docker Compose или перейдите к следующему шагу, чтобы установить конкретную версию:

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

    Если будет предложено принять ключ GPG, убедиться, что отпечаток соответствует 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35, и если да, принять его.

    Эта команда устанавливает Docker, но не запускает Docker. Он также создаёт группу docker, однако по умолчанию не добавляет пользователей в группу.

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

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

    $ dnf list docker-ce  --showduplicates | sort -r
    
    docker-ce.x86_64  3:18.09.1-3.fc28                 docker-ce-stable
    docker-ce.x86_64  3:18.09.0-3.fc28                 docker-ce-stable
    docker-ce.x86_64  18.06.1.ce-3.fc28                docker-ce-stable
    docker-ce.x86_64  18.06.0.ce-3.fc28                docker-ce-stable
    

    Возвращаемый список зависит от того, какие репозитории включены, и специфичен для вашей версии Fedora (обозначается суффиксом .fc28 в этом примере).

    1. Устанавливает конкретную версию по её полному имени пакета, которое представляет собой имя пакета (docker-ce) плюс строку версии (2-й столбец) до первого дефиса, разделенную дефисом (-), например, docker-ce-3:18.09.1.

    $ sudo dnf -y install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
    

    Эта команда устанавливает Docker, но не запускает Docker. Он также создаёт группу docker, однако по умолчанию не добавляет пользователей в группу.

  3. Запуск Docker.

    $ sudo systemctl start docker
    
  4. Убедиться, что Docker Engine установлен правильно, запустив образ hello-world.

    $ sudo docker run hello-world
    

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

Это устанавливает и запускает Docker Engine. Используйте sudo для запуска команд Docker. Перейдите к постустановка Linux, чтобы разрешить непривилегированным пользователям выполнять команды Docker и выполняет другие необязательные действия по настройке.

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

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

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

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

  1. Go на https://download.docker.com/linux/fedora/ и выбрать свою версию Fedora. Затем перейдите к x86_64/stable/Packages/ и загружает файл .rpm для версии Docker, которую вы хотите установить.

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

    $ sudo dnf -y install /path/to/package.rpm
    

    Docker установлен, но не запущен. Группа docker создана, но в нее не добавлены пользователи.

  3. Запуск Docker.

    $ sudo systemctl start docker
    
  4. Убедиться, что Docker Engine установлен правильно, запустив образ hello-world.

    $ sudo docker run hello-world
    

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

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

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

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

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

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 dnf remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
  2. Образы, контейнеры, тома или настроенные файлы конфигурации на вашем хосте не удаляются автоматически. Чтобы удаляет все образы, контейнеры и тома:

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

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

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