Контейнеры. podman

Контейнеры. podman.

Содержание

1 Общая информация

  • Совместимая с Docker среда выполнения контейнеров.

2 Установка

  • Rocky:
    1dnf -y install podman
    
  • Установим podman-compose:
    1dnf -y install podman-compose
    
  • Дополнительно можно установить текстовый интерфейс:
    1dnf -y install podman-tui
    
  • Плагин для Cockpit:
    1dnf -y install cockpit-podman
    

3 Запуск

  • Запустите сервис:
    1systemctl enable --now podman.service
    
  • Запустите сервис автообновления:
    1systemctl enable --now podman-auto-update.timer
    

4 Добавление контейнера

  • В качестве примера установим Nextcloud:
    1podman run -d -p 8080:80 nextcloud
    
  • Вы получите приглашение выбрать реестр контейнеров для загрузки.
  • Можно выбрать docker.io/library/nextcloud:latest.
  • После загрузки контейнера Nextcloud он запустится.
  • Введите ip_address:8080 в веб-браузере и настройте Nextcloud.

5 Запуск контейнеров как сервисов systemd

  • Информация: https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html
  • Quadlet: генератор systemd, который может создавать юнит-файлы для служб systemd без root и с root-доступом.
  • Файлы для сервисов с root-доступом можно поместить в каталоги:
    • /etc/containers/systemd/.
    • /usr/share/containers/systemd/
  • Файлы для сервисов без root-доступа могут быть помещены в каталоги:
    • $XDG_CONFIG_HOME/containers/systemd/ (~/.config/containers/systemd/);
    • /etc/containers/systemd/users/$(UID);
    • /etc/containers/systemd/users/.
  • Например, для Nextcloud создадим файл ~/.config/containers/systemd/nextcloud.container:
    1[Container]
    2Image=nextcloud
    3PublishPort=8080:80
    
  • Запустим генератор и сообщим systemd о запуске новой службы:
    1systemctl --user daemon-reload
    
  • Запустим службу:
    1systemctl --user start nextcloud.service
    
  • Для системных сервисов опустите флаг --user.
  • Чтобы автоматически запускать контейнер при запуске системы или входе пользователя в систему, можно добавить раздел в файл nextcloud.container:
    1[Install]
    2WantedBy=default.target
    
  • Поскольку сгенерированные служебные файлы считаются временными, их нельзя включить с помощью systemd.
  • Чтобы избежать этого, генератор вручную применяет установки во время генерации.

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие