Назад в блог

Установка и настройка Docker на CentOS 7

Установка и настройка Docker на CentOS 7

Введение

Docker — это платформа, которая упрощает запуск процессов приложений и управление ими в контейнерах. Она позволяет отделить ваши приложения от вашей инфраструктуры. Контейнеры очень похожи на виртуальные машины, но они более портативны, эффективны и просты в использовании. Существуют различные способы установки Docker на дистрибутивы Linux. Самый популярный и простой способ установить Docker на существующую операционную систему — использовать команды yum.

В этом руководстве будет показано, как настроить и использовать Docker на CentOS 7 за несколько простых шагов.

Предварительные требования:

Все команды, которые вы выполняете в этом руководстве, запускаются от имени пользователя без прав root, и при необходимости доступ root будет предоставлен с помощью ключевого слова sudo.

Шаг 1. Настройка Docker на CentOS 7

В официальном репозитории CentOS 7 может не быть последнего установочного пакета Docker. В этом разделе вы установите последнюю версию Docker из официального репозитория Docker. Сначала вам нужно обновить базу данных пакетов с помощью:

После завершения обновления выполните команду ниже, чтобы загрузить и установить последнюю версию Docker:

Теперь Docker установлен, поэтому вы можете запустить демон Docker, выполнив команду ниже:

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

Вывод команды systemctl status должен быть похож на приведенный ниже вывод, который показывает, что служба запущена:

Наконец, чтобы Docker запускался при перезагрузке компьютера, используйте команду:

Установка Docker предоставляет вам как службу Docker, так и клиентскую утилиту (клиент командной строки Docker). В следующих разделах руководства вы сможете попрактиковаться в использовании команд Docker.

Вы также можете ознакомиться с нашим подробным руководством по установке & работе с Docker на Ubuntu в публичном облаке.

Шаг 2. Использование команд Docker без префикса Sudo

Для запуска команд Docker требуются привилегии root. Таким образом, если вы хотите запускать команды, вам придется добавлять к ним префикс sudo. При установке по умолчанию создается группа Docker. Если вы добавите пользователя в эту группу, вы сможете запускать команды Docker без sudo. Попытка запустить команды Docker без sudo или без добавления пользователя в группу приведет к выводу, аналогичному приведенному ниже:

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

Чтобы добавить другого пользователя в группу Docker, вы можете просто заменить имя пользователя в команде:

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

Шаг 3: Выполнение команд Docker

Теперь, когда Docker установлен и запущен, давайте рассмотрим несколько команд, чтобы ознакомиться с утилитой командной строки Docker. Команды Docker обычно имеют следующий вид:

Чтобы найти все доступные подкоманды, используйте:

По состоянию на Docker 20.10.3, полный список доступных подкоманд включает:

Вы можете использовать флаг –help с конкретной командой, чтобы получить о ней дополнительную информацию:

Чтобы получить подробную информацию о системе, используйте:

Шаг 4. Работа с образами Docker

Образы Docker можно назвать шаблонами для контейнеров Docker. Обычно эти образы загружаются из Docker Hub, который представляет собой реестр, управляемый проектом Docker. Любой желающий может создавать и отправлять свои образы в Docker Hub. В результате вы можете легко найти в реестре самые разные приложения и дистрибутивы операционных систем. Давайте опробуем простую программу, которая подтвердит доступ к Docker Hub:

Вы должны получить следующий вывод, который показывает, что Docker работает:

Вы можете найти различные образы Docker в Docker Hub с помощью команды поиска. Например, см. команду ниже для поиска образа CentOS:

Поисковый запрос покажет список всех образов, которые совпали с подстрокой. В вашем случае вывод должен быть следующим:

В результатах поиска есть разные столбцы, содержащие информацию об образе. Значение OK в столбце OFFICIAL указывает на то, что образ был создан и поддерживается компанией-разработчиком приложения. Выбрав подходящий образ, вы можете загрузить его на свой локальный компьютер с помощью команды Docker pull:

После загрузки образа вы можете запустить контейнер с помощью команды Docker run. Если вы попытаетесь запустить образ напрямую без предварительной загрузки, Docker сначала загрузит образ, а затем запустит контейнер:

Вы можете просмотреть список образов, загруженных на ваш локальный компьютер, с помощью следующей команды:

Вы должны получить похожий вывод:

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

Шаг 5. Интерактивный запуск контейнера

Существуют различные типы контейнеров. Контейнер hello-world, который вы запустили на Шаге 4 , относится к типу контейнеров, которые запускаются и завершают работу после вывода сообщения. Другой тип контейнеров — интерактивные. Вы можете использовать интерактивные контейнеры так же, как виртуальную машину.

Давайте создадим контейнер из последнего образа CentOS. Использование флагов -i и -t в команде Docker run предоставит интерактивный доступ к контейнеру CentOS:

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

Теперь любая выполняемая вами команда будет запускаться внутри контейнера. Это аналогично выполнению команды на виртуальной машине. Давайте попробуем установить MySQL в контейнер CentOS. Вы можете сделать это с помощью:

Шаг 6. Сохранение изменений в контейнере в образ Docker

После запуска контейнера вы можете выполнять все операции, которые возможны в аналогичной виртуальной машине, например, создавать/изменять файлы или настраивать приложение. Обратите внимание, что эти изменения сохранятся только для этого контейнера, и после удаления контейнера внесенные вами изменения будут утеряны.

В этой части руководства вы узнаете, как создать новый образ Docker из контейнера с внесенными вами изменениями. После Step5 у вас будет запущен контейнер CentOS с установленным сервером MySQL. Этот контейнер теперь отличается от чистого образа CentOS. Вы можете сохранить это состояние контейнера для дальнейшего использования. Сначала вам нужно выйти из контейнера с помощью:

Зафиксируйте изменения, внесенные в контейнер, в новом образе Docker с помощью команды ниже:

В этой команде флаг -m указывает на сообщение коммита и должен в общих чертах описывать внесенные изменения, а флаг -a используется для указания автора. Container-id — это идентификатор из Step5, который вы получили после запуска контейнера в интерактивном режиме, а репозиторием обычно является ваше имя пользователя на Docker Hub. Например:

Теперь, когда образ зафиксирован, команда Docker images должна вывести как новый образ, так и старые:

Вывод команды должен быть похож на следующий:

Как видно из примера, новый образ centos-mysql создан на основе образа CentOS из Docker Hub. Разница в размере указывает на то, что были внесены некоторые изменения. В данном примере это было добавление сервера MySQL в контейнер. В следующий раз, когда вам понадобится контейнер с сервером MySQL, вы сможете просто запустить новый образ, и вуаля! У вас будет запущен контейнер CentOS с предустановленным сервером MySQL.

Шаг 7. Управление контейнерами Docker

Теперь, когда вы знакомы с Docker, после некоторого времени его использования у вас уже есть несколько запущенных и несколько неактивных контейнеров. Чтобы получить список активных контейнеров, используйте:

Вы должны увидеть похожий вывод:

Чтобы вывести список как активных, так и неактивных контейнеров, вам следует использовать флаг -a в команде:

Чтобы найти последний созданный вами контейнер, вы можете указать флаг -l:

Чтобы остановить запущенный/активный контейнер, выполните простую команду:

Вы можете найти container-id в выводе команды Docker ps.

Шаг 8. Публикация образов в репозиторий

Следующий шаг после создания нового образа — поделиться им с друзьями. Вы также можете сделать его доступным для всего мира с помощью Docker Hub или любого другого реестра. Перед отправкой образа вам необходимо войти в соответствующий реестр.

В следующей части руководства вы узнаете, как отправлять образы в Docker Hub. Сначала зарегистрируйтесь на Docker Hub. Вам нужно будет войти в Docker Hub, чтобы отправить свой образ с помощью команды ниже:

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

Вывод команды будет похож на следующий:

После того как вы отправите образ, он должен появиться на панели управления вашей учетной записи, как показано на рисунке ниже:

docker account dashboard

В случае аналогичной ошибки, скорее всего, вы не вошли в систему:

Вы можете войти в систему и повторить попытку отправки.

Заключение

Существует множество способов использования Docker. Это руководство должно предоставить вам достаточно информации для начала работы. А поскольку Docker — действительно популярный проект, вы можете найти множество подробностей об использовании, а также о различных сценариях применения в блоге проекта.

Вы также можете ознакомиться с другими нашими руководствами по Docker, чтобы узнать больше о его возможностях:

Приятной работы!

author

Pranay Kapgate

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.