Введение
Для системного администратора, работающего с Red Hat Enterprise Linux (RHEL), навыки управления контейнеризированными приложениями являются базовыми. В рамках данного испытания вы будете использовать консольные утилиты podman и skopeo для выполнения основных операций с контейнерами. Вы попрактикуетесь в загрузке образов из публичного реестра, их запуске, анализе конфигурации и копировании образов в локальное хранилище.
Загрузка и запуск образа контейнера
Ваша первая задача — загрузить образ контейнера из публичного реестра и запустить его в локальной системе. Вы будете использовать образ веб-сервера nginx, который является классическим примером для демонстрации возможностей контейнеризации.
Задачи
- Скачайте последнюю версию образа
nginxиз реестраdocker.io, используя командуpodman. - Запустите контейнер на основе образа
nginxи убедитесь, что он работает корректно.
Требования
- Контейнеру
nginxдолжно быть присвоено имяmy-nginx. - Контейнер должен быть запущен в фоновом режиме (detached mode).
- Порт
80контейнера должен быть проброшен на порт8080вашей локальной машины.
Пример
После успешного запуска контейнера вы можете проверить его доступность. Команда curl должна вернуть стандартную приветственную страницу Nginx.
$ curl http://localhost:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
</html>
Инспектирование контейнера
После запуска контейнера часто возникает необходимость получить подробную информацию о его конфигурации, сетевых настройках и подключенных томах. Команда podman inspect предоставляет эти данные в структурированном формате JSON.
Задачи
- Проинспектируйте запущенный контейнер
my-nginx. - Перенаправьте результат инспектирования в файл.
Требования
- Используйте команду
podman inspectдля получения подробностей о контейнереmy-nginx. - Сохраните вывод JSON в файл с именем
nginx-inspect.jsonв директории~/project/containers/.
Пример
Файл nginx-inspect.json будет содержать массив данных со всеми параметрами конфигурации контейнера. Вы можете просмотреть его содержимое с помощью команд cat или less.
$ cat ~/project/containers/nginx-inspect.json
[
{
"Id": "a933dd...c8e",
"Created": "2023-10-27T10:30:00.123456789Z",
"Path": "/docker-entrypoint.sh",
"Args": [
"nginx",
"-g",
"daemon off;"
],
"State": {
...
Копирование образа контейнера с помощью Skopeo
skopeo — это мощный инструмент для перемещения образов контейнеров между различными типами хранилищ, такими как публичные реестры, локальные хранилища и частные реестры. На этом этапе вы скопируете образ nginx в локальный реестр контейнеров, запущенный на вашей машине.
По умолчанию Podman и Skopeo не позволяют отправлять образы в незащищенные (HTTP) реестры. Сначала необходимо настроить систему так, чтобы она доверяла локальному реестру, используя современный формат конфигурации v2.
Задачи
- Настройте систему для разрешения отправки образов в незащищенный локальный реестр по адресу
localhost:5000. - Используйте
skopeoдля копирования образаnginx:latestизdocker.ioв ваш локальный реестр. - Скачайте образ из локального реестра в хранилище Podman, чтобы убедиться в успешном копировании.
Требования
- Отредактируйте файл
/etc/containers/registries.conf, чтобы добавитьlocalhost:5000в список доверенных незащищенных реестров (формат v2). Для этого потребуются праваsudo. - Используйте команду
skopeo copyдля переноса образаdocker.io/library/nginx:latest. - Путь назначения в локальном реестре должен быть
localhost:5000/my-local-nginx:latest. - После копирования используйте
podman pull, чтобы извлечьlocalhost:5000/my-local-nginx:latest.
Резюме
В ходе этого испытания вы освоили ключевые навыки управления контейнерами в среде Red Hat Enterprise Linux. Вы успешно использовали podman для загрузки образа, запуска именованного контейнера с пробросом портов и детального изучения его конфигурации. Кроме того, вы выполнили важную практическую задачу: настроили работу с незащищенным реестром и применили skopeo для миграции образа из публичного источника в частное локальное хранилище. Эти инструменты являются основой работы любого системного администратора в современной контейнеризированной инфраструктуре.



