Добавить в корзинуПозвонить
Найти в Дзене

[Cloud.ru] Установка Podman на ВМ

Данная статья является частью серии статей: Виртуальная машина для pet-проектов Вполне возможно, в процессе установки программ ниже, у вас может появиться сообщение, что запущено старое ядро, а установлено новое. Пояснение, что надо делать тут, см пункт Отступление. Подключаемся по SSH и заходим под пользователем с sudo
Обновляем систему sudo apt update && sudo apt upgrade -y Устанавливаем необходимые пакеты sudo apt install -y curl wget gnupg2 software-properties-common sudo apt install -y podman podman-docker sudo apt install -y podman-compose Последняя команда может не работать, тогда делаем так sudo apt install -y python3-pip
sudo pip3 install podman-compose Проверяем версию podman --version
podman-compose --version Включение linger для user2 (чтобы контейнеры запускались после ребута) sudo loginctl enable-linger user2 Переключаемся на user2 su - user2 Проверяем, что Podman доступен podman --version Запускаем тестовый контейнер podman run hello-world # Поиск образов
podman s
Оглавление

Данная статья является частью серии статей: Виртуальная машина для pet-проектов

Вводные данные

  • ОС: Ubuntu 22.04 в облаке Cloud.ru.
  • user1: имеет права sudo
  • user2: не имеет прав sudo
  • Docker: ещё не установлен
  • Цель: user2 может запускать контейнеры без sudo

Отступление: обновление ядра и перезапуск служб

Вполне возможно, в процессе установки программ ниже, у вас может появиться сообщение, что запущено старое ядро, а установлено новое. Пояснение, что надо делать тут, см пункт Отступление.

Подготовка системы

Подключаемся по SSH и заходим под пользователем с sudo

Обновляем систему

sudo apt update && sudo apt upgrade -y

Устанавливаем необходимые пакеты

sudo apt install -y curl wget gnupg2 software-properties-common
sudo apt install -y podman podman-docker
sudo apt install -y podman-compose

Последняя команда может не работать, тогда делаем так

sudo apt install -y python3-pip
sudo pip3 install podman-compose

Проверяем версию

podman --version
podman-compose --version

Включение linger для user2 (чтобы контейнеры запускались после ребута)

sudo loginctl enable-linger user2

Проверяем Podman у user2

Переключаемся на user2

su - user2

Проверяем, что Podman доступен

podman --version

Запускаем тестовый контейнер

podman run hello-world

Базовые команды

# Поиск образов
podman search nginx
# Скачивание образа
podman pull nginx:alpine
# Список образов
podman images
# Запуск контейнера в интерактивном режиме
podman run -it ubuntu:22.04 bash
# Запуск контейнера в фоне
podman run -d --name my-nginx -p 8080:80 nginx:alpine
# Список запущенных контейнеров
podman ps
# Список всех контейнеров (включая остановленные)
podman ps -a
# Остановка контейнера
podman stop my-nginx
# Запуск остановленного контейнера
podman start my-nginx
# Удаление контейнера
podman rm my-nginx
# Удаление образа
podman rmi nginx:alpine
# Просмотр логов
podman logs my-nginx
# Выполнение команды в работающем контейнере
podman exec -it my-nginx sh
# Запускаем все сервисы
podman-compose up -d
# Проверяем статус
podman-compose ps
# Смотрим логи
podman-compose logs web
# Останавливаем
podman-compose down
# От user1 - посмотреть все пользовательские контейнеры
sudo podman ps -a --all
# От user1 - посмотреть логи конкретного пользователя
sudo journalctl --user -u user2 --since "1 hour ago"
# От user2 - очистка неиспользуемых образов и контейнеров
podman system prune -a
# От user2 - показать использование диска
podman system df
# От user2 - информация о системе
podman info

Важный нюанс

Поскольку user2 не имеет root-прав, он не может слушать на портах ниже 1024:

podman run -p 80:80 nginx:alpine - не работает
podman run -p 8080:80 nginx:alpine - работает