Перейти к содержимому
Главная страница » Как установить и использовать Docker в Rocky Linux 9

Как установить и использовать Docker в Rocky Linux 9

Рокки Линукс 9

Введение

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

В этом руководстве вы узнаете, как установить и использовать его в существующей установке Rocky Linux 9.

Предварительные условия

  • Сервер Rocky Linux 9 с пользователем без полномочий root с привилегиями sudo , настроенным с помощью Руководства по первоначальной установке для Rocky Linux 9, объясняет, как это настроить.

Все команды в этом руководстве следует запускать от имени пользователя без полномочий root. Если для команды требуется root-доступ, ей будет предшествовать sudo . Руководство по первоначальной установке Rocky Linux 9 объясняет, как добавлять пользователей и предоставлять им доступ sudo.

Шаг 1 — Установка Докера

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

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

  1. sudo dnf проверка обновления

Затем добавьте официальный репозиторий Docker:

  1. sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Хотя в Docker нет специального репозитория Rocky Linux, Rocky Linux основан на CentOS и может использовать тот же репозиторий. После добавления репозитория установите Docker, который состоит из трех пакетов:

  1. sudo dnf установить docker-ce docker-ce-cliContainerd.io

После завершения установки запустите демон Docker:

  1. sudo systemctl запустить докер

Убедитесь, что он работает:

  1. Докер состояния sudo systemctl

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

Выход
● docker.service — ядро контейнера приложений Docker Загружено: загружено (/lib/systemd/system/docker.service; включено; предустановка поставщика: включено) Активно: активный (работающий) с воскресенья 01.05.2016 06:53:52 CDT; 1 неделю 3 дня назад Документы: https://docs.docker.com Основной PID: 749 (докер)

Наконец, убедитесь, что он запускается при каждой перезагрузке сервера:

  1. sudo systemctl включить докер

Установка Docker теперь дает вам не только службу Docker (демон), но и утилиту командной строки docker или клиент Docker. Позже в этом руководстве мы рассмотрим, как использовать команду docker .

Шаг 2. Выполнение команды Docker без Sudo (необязательно)

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

Выход
docker: невозможно подключиться к демону Docker. Работает ли на этом хосте демон докера? См. «docker run --help».

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

  1. sudo usermod -aG docker $( whoami )

Чтобы включить это изменение, вам нужно будет выйти из Droplet и снова войти под тем же пользователем.

Если вам нужно добавить пользователя в группу docker , под которым вы не вошли в систему, явно объявите это имя пользователя, используя:

  1. sudo usermod -aG докер имя пользователя

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

Шаг 3 — Использование команды Docker

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

  1. docker [ опция ] [ команда ] [ аргументы ]

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

  1. докер

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

Выход
Attach Прикрепить к работающей сборке контейнера. Создать образ из фиксации Dockerfile. Создать новый образ на основе изменений контейнера. cp Копировать файлы/папки между контейнером и локальной файловой системой. Create Создать новый контейнер. diff. Проверять изменения в событиях файловой системы контейнера. Получать информацию в реальном времени. события с сервера exec Запуск команды в работающем контейнере экспорт Экспорт файловой системы контейнера в виде истории tar-архива Показать историю изображений изображений Импорт изображений списка Импорт содержимого из архива для создания информации об образе файловой системы Отображение общесистемной информации. Проверка Возвратить низкоуровневую информацию об уничтожении контейнера или образа. Уничтожить запущенную загрузку контейнера. Загрузить образ из tar-архива или войти в систему STDIN. Войти в реестр Docker. Выход из журналов реестра Docker. Получить журналы сети контейнера. Управление сетями Docker. пауза Приостановить все процессы в порту контейнера. Список сопоставлений портов или конкретное сопоставление для КОНТЕЙНЕРА. ps. Список контейнеров. Pull. Извлечь образ или репозиторий из реестра. Push. Отправить образ или репозиторий в реестр. Переименование. Переименование контейнера. Перезапуск перезапуска контейнера rm. Удалить один или несколько контейнеров rmi Удалить один или несколько изображений. Запустить Запустить команду в новом контейнере. Сохранить. Сохранить одно или несколько изображений в tar-архиве. Поиск. Поиск изображений в Docker Hub. Запустить. Запустить статистику одного или нескольких остановленных контейнеров. Отобразить живой поток контейнера. (s) статистика использования ресурсов остановить Остановить запущенный тег контейнера Пометить изображение в репозитории вверху Отобразить запущенные процессы контейнера снять с паузы Снять с паузы все процессы в контейнере обновить обновить конфигурацию одной или нескольких версий контейнеров Показать том с информацией о версии Docker Управление Docker тома ждут Блокировать, пока контейнер не остановится, а затем распечатать его код выхода

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

  1. докер docker-подкоманда --помощь

Для просмотра общесистемной информации используйте:

  1. информация докера

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

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

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

  1. Докер запускает hello-world

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

Выход
Привет от Докера. Это сообщение показывает, что ваша установка работает правильно. ...

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

  1. поиск докера в Rockylinux

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

Выход
НАЗВАНИЕ ОПИСАНИЕ STARS OFFICIAL АВТОМАТИЧЕСКИЕ centos Официальная сборка CentOS. 2224 [ОК] jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 22 [ОК] jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M ... 17 [ОК]million12/centos-supervisor Базовая CentOS-7 с программой запуска супервизора, ч... 11 [ОК] nimmis/java-centos Это образы докеров CentOS 7 с различным... 10 [ОК] torusware /speedus-centos Всегда обновляемый официальный образ докера CentOS... 8 [OK] nickistre/centos-lamp LAMP при настройке Centos 3 [OK] ...

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

  1. Докер вытащить RockyLinux

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

  1. Докер запускает Rockylinux

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

  1. изображения докера

Вывод должен выглядеть примерно так:

 [secondary_lable Output] REPOSITORY TAG IMAGE ID CREATED SIZE rockylinux latest 778a53015523 5 weeks ago 196.7 MB hello-world latest 94df4f0ce8a4 2 weeks ago 967 B

Как вы увидите далее в этом руководстве, образы, которые вы используете для запуска контейнеров, можно модифицировать и использовать для создания новых образов, которые затем можно загрузить (технический термин — push) в Docker Hub или другие реестры Docker.

Шаг 5 — Запуск Docker-контейнера

Контейнер hello-world который вы запустили на предыдущем шаге, является примером контейнера, который запускается и завершает работу после отправки тестового сообщения. Однако контейнеры могут быть гораздо более полезными, и они могут быть интерактивными. В конце концов, они похожи на виртуальные машины, только более ресурсоемкие.

В качестве примера давайте запустим контейнер, используя последний образ Rocky Linux. Комбинация ключей -i и -t дает вам интерактивный доступ к контейнеру через оболочку:

  1. docker run -it rockylinux

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

Выход
[root@59839a1b7de2 /]#

Important: обратите внимание на идентификатор контейнера в командной строке. В приведенном выше примере это 59839a1b7de2 .

Теперь вы можете запустить любую команду внутри контейнера. Например, давайте установим сервер MariaDB в работающий контейнер. Нет необходимости добавлять к какой-либо команде префикс sudo , поскольку вы работаете внутри контейнера с привилегиями root:

  1. dnf установить сервер MariaDB

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

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

В этом разделе показано, как сохранить состояние контейнера в виде нового образа Docker.

После установки сервера MariaDB внутри контейнера Rocky Linux у вас теперь есть контейнер, работающий на основе образа, но этот контейнер отличается от образа, который вы использовали для его создания.

Чтобы сохранить состояние контейнера в виде нового образа, сначала выйдите из него:

  1. Выход

Затем зафиксируйте изменения в новом экземпляре образа Docker, используя следующую команду. Ключ -m предназначен для сообщения о фиксации, которое поможет вам и другим узнать, какие изменения вы внесли, а -a используется для указания автора. Идентификатор контейнера — это тот, который вы указали ранее в руководстве при запуске интерактивного сеанса Docker. Если вы не создали дополнительные репозитории в Docker Hub, обычно это ваше имя пользователя Docker Hub:

  1. docker commit -m "Что вы сделали с изображением" -a "Имя автора" идентификатор контейнера репозиторий / новое_имя_изображения

Например:

  1. docker commit -m "добавленный сервер mariadb" -a "Sunday Ogwu-Chinuwa" 59839a1b7de2 Sammy/rockylinux-mariadb

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

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

  1. изображения докера

Вывод должен быть такого рода:

Выход
ТЕГ РЕПОЗИТОРИЯ ИДЕНТИФИКАТОР ИЗОБРАЖЕНИЯ СОЗДАННЫЙ РАЗМЕР Sammy/rockylinux-mariadb последнее 23390430ec73 6 секунд назад 424,6 МБ rockylinux последнее 778a53015523 5 недель назад 196,7 МБ hello-world последнее 94df4f0ce8a4 2 недели назад 967 B

В приведенном выше примере rockylinux-mariadb — это новый образ, полученный из существующего образа Rocky Linux из Docker Hub. Разница в размерах отражает внесенные изменения. В этом примере изменение заключалось в том, что был установлен сервер MariaDB. Поэтому в следующий раз, когда вам понадобится запустить контейнер с использованием Rocky Linux с предустановленным сервером MariaDB, вы можете просто использовать новый образ. Образы также могут быть созданы из так называемого Dockerfile. Но это очень сложный процесс, который выходит далеко за рамки данной статьи. Мы рассмотрим это в следующей статье.

Шаг 7 — Листинг Docker-контейнеров

После некоторого использования Docker на вашем компьютере появится множество активных (работающих) и неактивных контейнеров. Для просмотра активных используйте:

  1. докер , пс

Вы увидите вывод, аналогичный следующему:

Выход
ИДЕНТИФИКАТОР КОНТЕЙНЕРА ИЗОБРАЖЕНИЕ КОМАНДА СОЗДАНО СТАТУС ИМЕНА ПОРТОВ f7c79cc556dd rockylinux "/bin/bash" 3 часа назад Работает 3 часа silly_spence

Чтобы просмотреть все контейнеры — активные и неактивные, передайте ему ключ -a :

  1. докер пс

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

  1. докер пс

Остановить работающий или активный контейнер так же просто, как набрать:

  1. остановка докера идентификатор контейнера

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

Шаг 8 — Отправка образов Docker в репозиторий Docker

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

В этом разделе показано, как отправить образ Docker в Docker Hub.

Чтобы создать учетную запись в Docker Hub, зарегистрируйтесь в Docker Hub. После этого, чтобы отправить образ, сначала войдите в Docker Hub. Вам будет предложено пройти аутентификацию:

  1. вход в докер -u имя пользователя-реестра-докера

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

  1. докер push имя пользователя-реестра-докера / имя-образа-докера

Это займет некоторое время, и по завершении вывод будет такого рода:

Выход
Push относится к репозиторию [docker.io/sammy/rockylinux-mariadb] 670194edfaf5: отправлено 5f70bf18a086: смонтировано из библиотеки/rockylinux 6a6c96337be1: смонтировано из библиотеки/rockylinux...

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

Список образов Docker в Docker Hub

Если попытка push-уведомления приводит к ошибке такого типа, то, скорее всего, вы не вошли в систему:

Выход
Отправка относится к репозиторию [docker.io/sammy/rockylinux-mariadb] e3fbbfb44187: подготовка 5f70bf18a086: подготовка a3b5c80a4eba: подготовка 7f18b442972b: подготовка 3ce512daaf78: подготовка 7aae4540b42d: ожидание несанкционированного доступа: требуется аутентификация

Войдите в систему, затем повторите попытку отправки.

Заключение

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

Также ознакомьтесь с другими учебниками по Docker в сообществе DO.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *