Рассмотрим установку Docker на примере CentOS, одно из наиболее используемое ПО в практике DevOPS. При работе с CentOS у вас есть выбор: использовать последнюю версию из upstream или версию, собранную проектом CentOS с дополнениями Red Hat. Описание изменений доступно на странице.
В основном это обратное портирование исправлений из новых версий upstream и изменения, предложенные разработчиками Red Hat, но пока не принятые в основной код. Наиболее заметным различием на момент написания статьи было то, что в новых версиях сервис docker был разделен на три части: демон docker, containerd и runc. Red Hat пока не считает, что это изменение стабильно, и поставляет монолитный исполнимый файл версии 1.10. Настройки репозитория для установки upstream-версии, как и инструкции для инсталляции в других дистрибутивах и ОС, приведены в руководстве по инсталляции на официальном сайте Docker . В частности, настройки для репозитория CentOS 7:

Устанавливаем необходимые пакеты и запускаем и включаем сервис:

Проверяем статус сервиса:

Также можно посмотреть системную информацию о Docker и окружении:

При запуске аналогичной команды в случае установки Docker из репозиториев CentOS увидите незначительные отличия, обусловленные использованием более старой версии программного обеспечения. Из вывода docker info можем узнать, что в качестве драйвера для хранения данных используется Device Mapper, а в качестве хранилища – файл в /var/lib/docker/:

Опции запуска демона, как это обычно бывает в CentOS, хранятся в /etc/sysconfig/. В данном случае имя файла docker. Соответствующая строчка /etc/sysconfig/docker, описывающая опции:

Для того чтобы пользоваться командой docker без применения sudo, необходимо добавить пользователя, с правами которого вы работаете, в группу docker:

Если бы вы запустили команду docker не пользователем root и не пользователем, входящим в группу docker, вы бы увидели подобную ошибку:

Обратите внимание, что фактически включение пользователя в группу docker равносильно включению этого пользователя в группу root. У разработчиков RHEL/CentOS несколько иной подход к безопасности демона Docker, чем у разработчиков самого Docker из upstream. Подробнее о подходе Red Hat написано в статье разработчика дистрибутива RHEL Дэна Уолша.
Если же вы хотите «стандартное» поведение Docker, установленного из репозиториев CentOS (т.е. описанное
в официальной документации), то необходимо создать группу docker и добавить в опции запуска демона:

После чего рестартуем сервис и проверяем, что файл сокета docker принадлежит группе docker, а не root:

Поиск образов и тэги Попробуем найти контейнер на Docker Hub.

В данном выводе мы получили список ряда образов HA Proxy. Самый верхний элемент списка – это HA Proxy
из официального репозитория. Такие образы отличаются тем, что в имени отсутствует символ «/», отделяющий имя репозитория пользователя от имени самого контейнера. В примере за официальным показаны два образа haproxy из открытых репозиториев пользователей eeacms и million12.
Образы, подобные двум нижним, можете создать сами, зарегистрировавшись на Docker Hub. Официальные же поддерживаются специальной командой, спонсируемой Docker, Inc. Особенности официального репозитория:

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

Чтобы искать только официальные образы, можете использовать опцию —filter «is-official=true» команды docker search.
Число звезд в выводе команды docker search соответствует популярности образа. Это аналог кнопки Like
в социальных сетях или закладок для других пользователей. Automated означает, что образ собирается автоматически из специального сценария Dockerfile средствами Docker Hub. Обычно следует отдавать предпочтение автоматически собираемым образам вследствие того, что его содержимое может быть проверено знакомством с соответствующим файлом Dockerfile.
Скачаем официальный образ HA Proxy:

Обратите внимание, что в выводе была указана загрузка образа с тэгом latest. Использование тэгов позволяет
обращаться к конкретной версии. Помимо самого образа haproxy, был скачен базовый образ и все промежуточные, от которых зависит скачиваемый. Чтобы скачать конкретную версию, используем:

Полное имя образа может выглядеть следующим образом:

Просмотреть список скаченных образов можно командойdocker images:

Команда docker images с опцией -q вернет только идентификаторы образов, что может быть полезным для использования идентификаторов в качестве входных значений для другой команды. Например, команды docker rmi, которая удаляет образ. Для того чтобы удалить все имеющиеся в локальном кэше образы, можно воспользоваться такой командой:

Установка, настройка и поддержка Docker контейнеров, обращайтесь [email protected]