Управление контейнерами с помощью Podman и Skopeo

Red Hat Enterprise LinuxBeginner
Практиковаться сейчас

Введение

Для системного администратора, работающего с 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 для миграции образа из публичного источника в частное локальное хранилище. Эти инструменты являются основой работы любого системного администратора в современной контейнеризированной инфраструктуре.