Поиск по сайту:

Как установить и использовать Podman (альтернатива Docker) в Ubuntu 20.04


Это руководство существует для этих версий ОС

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

На этой странице

  1. Предпосылки
  2. Установка Podman в Ubuntu 20.04
  3. Создание нового пользователя и запуск контейнера hello-world
  4. Основное использование Podman
  5. Заключение

Podman — это инструмент с открытым исходным кодом для управления контейнерами, образами, томами и модулями (группами контейнеров). Он использует API-интерфейсы библиотеки libpod для управления жизненными циклами контейнеров и поддерживает несколько форматов образов контейнеров, включая OCI (Open Container Initiative) и образы Docker.

Podman — это механизм контейнеров, отвечающий требованиям OCI (Open Container Initiative). Он совместим с интерфейсом командной строки Docker и позволяет запускать контейнер без root (запуск контейнера без привилегий root). Podman был выпущен как часть Red Hat Enterprise Linux, призванный стать контейнерным инструментом Linux следующего поколения с более быстрым экспериментированием и разработкой функций.

В этом руководстве вы узнаете, как установить Podman в системе Ubuntu 20.04. Вы будете устанавливать Podman и изучать основные способы использования podman для управления контейнерами, образами и томами Docker.

Предпосылки

  • Сервер Ubuntu 20.04. Убедитесь, что все пакеты имеют последнюю версию, чтобы избавиться от устаревших зависимостей и привести к ошибке во время установки.
  • Пользователь с привилегиями root или пользователь root — для установки новых пакетов и изменения общесистемной конфигурации.

Установка Подмана в Ubuntu 20.04

Сначала вы добавите сторонний репозиторий и ключ для установки podman в системе Ubuntu 20.04.

1. Выполните следующую команду, чтобы экспортировать переменные среды в файл /etc/os-release.

. /etc/os-release

2. Добавьте репозиторий podman со стабильной версией и добавьте ключ GPG в свою систему, используя приведенную ниже команду.

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/Release.key" | sudo apt-key add -

3. Обновите/обновите репозитории Ubuntu и обновите все пакеты до последней версии.

sudo apt update
sudo apt -y upgrade

4. После этого установите podman с помощью приведенной ниже команды apt.

sudo apt install podman

Введите y и нажмите Enter, чтобы продолжить установку.

5. После завершения установки проверьте версию podman с помощью следующей команды.

podman version

Ниже приведен аналогичный результат, который вы получите.

Как видно, вы установили podman v3.3.1, скомпилированный с помощью Go 1.16 для архитектуры Linux amd64 (64-разрядная версия).

Создание нового пользователя и запуск контейнера hello-world

Podman позволяет запускать контейнеры под пользователем без привилегий root. На этом этапе вы добавите нового пользователя и запустите контейнер hello-world на основе образа Docker.

1. Выполните следующую команду, чтобы добавить нового пользователя johndoe.

useradd -m -s /bin/bash johndoe
passwd johndoe

Введите новый пароль для пользователя johndoe.

2. Затем войдите в систему как пользователь johndoe и запустите контейнер на основе образа Docker hello-world.

Войдите в систему как пользователь johndoe.

su - johndoe

Запустите новый контейнер на основе образа Docker hello-world с помощью команды podman.

podman run hello-world

Вас спросят, какой реестр контейнеров вы хотите использовать, выберите реестр контейнеров docker.io, и вы увидите результат, аналогичный приведенному ниже.

3. Чтобы проверить контейнер и образы на локальном компьютере, выполните приведенную ниже команду.

podman ps -a
podman images

Вы увидите, что новый контейнер создан и текущий статус Exited. Контейнер основан на образе Docker hello-world.

Основное использование Podman

С помощью этого руководства вы узнаете, как использовать podman для управления контейнерами, изображениями и томами. Вы изучите базовую команду podman для управления контейнером, и команды, которые вы будете использовать в этом руководстве, на 100 % совпадают с командой Docker CLI.

1. Чтобы найти образы контейнеров, совместимые с podman, выполните приведенную ниже команду podman.

podman search nginx

И вы увидите список образов контейнеров из реестра образов Docker по умолчанию и реестра образов Quay.

Выберите образы контейнеров nginx из реестра Docker и загрузите их на локальный компьютер с помощью приведенной ниже команды podman.

podman pull nginx:alpine

Выберите реестр контейнеров docker.io, и начнется процесс загрузки образа контейнера Nginx.

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

podman images

И вы увидите два изображения — hello-world и изображения nginx.

3. Затем, чтобы запустить и запустить новый контейнер на основе образа nginx:alpine, выполните команду podman с параметром run, как показано ниже.

podman run -it --rm -d -p 8080:80 --name web nginx:alpine

Некоторые параметры, которые вы должны знать:

  • -i или --interactive — держать контейнер STDIN открытым, даже если он не подключен.
  • -t или --tty — выделяет псевдотерминал, который соединяет ваш терминал с STDIN и STDOUT контейнера.
  • --rm — автоматически удалять контейнер при выходе или остановке контейнера.
  • -d - запуск контейнера в фоновом режиме, отсоединение контейнера после его запуска.
  • -p 8080:80 — сопоставить порт между контейнером и хост-системой. Порт 80 в контейнере сопоставляется с портом 8080 хост-системы.
  • --name web — укажите имя нового контейнера как web.
  • nginx:alpine — мы используем образ nginx:alpine.

Вы увидите случайную строку и номер вашего работающего контейнера. Проверьте работающий контейнер с помощью приведенной ниже команды podman.

podman ps

Вы увидите вывод, как показано ниже.

Контейнер находится в состоянии Up и предоставляет TCP-порт 8080 на хост-компьютере.

Откройте веб-браузер и перейдите на IP-адрес вашего сервера с портом 8080, как показано ниже.

И вы увидите возраст index.html по умолчанию для вашего контейнера nginx.

4. Кроме того, вы можете проверить журналы своего контейнера, используя опцию журналов, как показано ниже.

podman logs web

Или вы можете указать последние строки журнала контейнера с параметром --tail, как показано ниже.

podman logs --tail 10 web

5. Теперь вы можете остановить работающий контейнер, используя опцию остановки podman, как показано ниже.

podman stop web

Ваш веб-контейнер будет остановлен. Проверьте с помощью приведенной ниже команды.

podman ps
podman ps -a

И вы увидите аналогичный вывод, как показано ниже.

Веб-контейнер останавливается и автоматически удаляется, поскольку вы используете параметр --rm в команде podman.

6. Далее вы узнаете, как использовать пользовательский том для изменения файла index.html по умолчанию в новом контейнере.

Создайте новый каталог ~/data и файл index.html, используя следующую команду.

mkdir -p ~/data/
nano ~/data/index.html

Скопируйте и вставьте приведенный ниже HTML-скрипт.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome to Container Nginx</title>
</head>
<body>
  <h2>Hello from Nginx container - Managed with Podman</h2>
</body>
</html>

Нажмите кнопку Ctrl+x, введите y, затем нажмите Enter, чтобы сохранить конфигурацию и выйти.

Теперь выполните следующую команду podman, чтобы запустить новый контейнер с пользовательским томом.

podman run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine

Вариант, который вы должны знать:

  • -v - указать объем для вашего контейнера. Каталог ~/data будет смонтирован в новый каталог контейнера /usr/share/nginx/html.

Теперь выполните следующую команду, чтобы проверить работающий контейнер.

podman ps

Вы увидите новый веб-контейнер в статусе Up.

Затем откройте веб-браузер и введите IP-адрес вашего сервера с портом 8080.

И вы увидите пользовательскую страницу index.html, которую вы создали сверху, что означает, что каталог ~/data подключен к веб-контейнеру.

7. Далее вы можете войти в работающий контейнер с опцией exec и выполнить оболочку sh.

Убедитесь, что ваш веб-контейнер работает, используя следующую команду.

podman ps

Теперь выполните приведенную ниже команду podman, чтобы войти в веб-контейнер.

podman exec -it web /bin/sh

Проверьте имя хоста веб-контейнера.

hostname

Проверьте IP-адрес и таблицу маршрутизации веб-контейнера.

ip a
route -n

Теперь введите exit, чтобы выйти из веб-контейнера.

8. Теперь очистите свою среду с помощью следующей команды.

Остановите веб-контейнер с помощью приведенной ниже команды podman.

podman stop web

Удалите все контейнеры со статусом Exited с помощью приведенной ниже команды podman.

podman rm $(podman ps --filter "status=exited" -q)

Заключение

Поздравляем! Вы успешно установили Podman в системе Ubuntu 20.04. Кроме того, вы изучили основы использования podman для загрузки образов контейнеров, запуска контейнера, проверки состояния контейнера, журналов и базового использования podman для управления томом. На следующем шаге вы можете попробовать создать собственные образы со спецификациями OCI для отправки/загрузки вашего приложения в реестр контейнеров.