Говоря о будущем технологий, многие опытные специалисты знают, что виртуализация и контейнеризация - это именно тот путь. Они обеспечивают более высокий уровень безопасности приложений и сервисов, и ими легко управлять с помощью других сервисов, которые позволяют создавать моментальные снимки, шаблоны и более широкую настройку, чем в модели «один сервер на приложение». Однако не всегда до конца понятно, как начать работу с виртуализацией и контейнеризацией. Мы уже много раз рассматривали виртуализацию в Linux, Windows и macOS, но контейнеризация имеет тенденцию быть немного другим. В этой статье мы предлагаем вам руководство для начинающих по Podman в Linux, отличному инструменту для контейнеризации.
Что такое контейнеры?
Контейнеры - это по сути, маленькие виртуальные машины, но только для приложений. В них используется много одинаковых концепций и в основном те же функции безопасности и простоты использования, но они намного меньше по размеру и позволяют легко создавать образы и распространять приложения. Это во многом то, на чем основаны Flatpaks и Snap . Вы можете начать видеть параллели: одна программа, несколько приложений, работающих в изолированной среде.
Что такое Подман?
Многие из нас слышали о Docker , OG контейнерных движков. Podman - это похожий контейнерный движок, который использует структуру, очень похожую на Docker, с несколькими ключевыми отличиями.
Во-первых, Podman не имеет демонов, тогда как Docker полагается на демона. Это означает, что контейнеры Podman могут работать без разрешений корневого уровня, что обеспечивает большую безопасность и гибкость. Контейнер, работающий на уровне пользователя, означает что пользователи могут видеть только свои контейнеры и ничьи другие. Podman требует меньше системных ресурсов из-за более простой архитектуры, что делает его более приятным.
Архитектура без демонов приводит к так называемым контейнерам без корня. Это концепция, основанная на предыдущем различии, но ориентированная на безопасность. Если злоумышленник скомпрометирует ваш контейнер и ему удастся сбежать по какой-либо причине, у него будут только базовые разрешения пользователя, а не права root. Для этого требуется дополнительная настройка, и на данный момент есть некоторые недостатки, но на это стоит обратить внимание.
Установка Podman
Для большинства дистрибутивов Podman находится в основных репозиториях, что делает его простой командой установки:
# Debian / Ubuntu
sudo apt install podman
# Fedora / CentOS / Redhat
sudo dnf install podman
# Arch Linux sudo pacman -S podman
# OpenSUSE sudo zypper install podman
# Gentoo sudo emerge app- emulation / podman
Использование Podman
Синтаксис команды для запуска контейнера Podman может немного сбивать с толку, но как только вы начнете разбираться в нем, вы начнете распознавать шаблоны. Есть образец контейнера из проекта, который вы можете запустить, введя эту команду в терминал:
podman run -dt -p 8080 :8080 / tcp -e HTTPD_VAR_RUN =/ run/ httpd -e HTTPD_MAIN_CONF_D_PATH =/ etc/ httpd/ conf.d \
-e HTTPD_MAIN_CONF_PATH =/ etc/ httpd/ conf \
-e HTTPD_CONTAINER_SCRIPTS_PATH =/ usr/ share/ container-scripts/ httpd/ \
Это приведет к извлечению некоторых изображений из указанного реестра, и как только это будет сделано, вы получите длинный номер. Вы увидите это позже, когда проверите, запущены ли контейнеры.
Чтобы проверить запущенные контейнеры Podman, введите следующую команду:
podman ps
Вы увидите контейнер, который вы запустили ранее. Это подтверждает, что он работает. Однако, если вы хотите специально просмотреть веб-страницу, на которой работает Apache, вы выполните следующую команду:
curl http:// 0.0.0.0:8080
Замена 0.0.0.0 на любой IP-адрес, отображаемый при запуске podman ps команды. Вы должны получить кучу искаженного HTML, но если вы посмотрите прямо вверху, вы заметите синтаксис заголовка в HTML и поймете, что он работает.
<title >Test Page for the Apache HTTP Server on Fedora</ title >
Подман Images
Что-то хорошее в Podman - это использование изображений. Вы можете искать другие изображения, такие как httpd или другие программы, которые вы хотите запустить.
podman search CONTAINERNAME
Я искал vncserver , и вот что у меня получилось. Как видите, вариантов много, и все зависит от ваших личных предпочтений.
Чтобы получить одно из этих изображений, выполните podman pull команду.
podman pull CONTAINERNAME
Чтобы реестр контейнеров был точным, рекомендуется использовать полный URL-адрес. Например, я выполняю следующую команду:
podman pull docker.io / michaelaboeckler / vncserver
вместо того, чтобы просто работать, podman pull vncserver потому что могут быть изображения, которые я не хочу, и они будут выбраны вместо того, которое мне действительно нужно.
Вы также можете проверить свои изображения с помощью этой команды:
podman images
И остановите контейнеры с помощью этой команды:
podman stop -l
В -l означает флаг он будет остановить последний контейнер бежать, но вы также можете использовать -a флаг , чтобы остановить все контейнеры.
Возможно, вы заметили, что Podman также может посмотреть на docker.io образы контейнеров. Это потому, что команды Podman и команды Docker по сути одинаковы - настолько, что иногда рекомендуется использовать псевдоним docker команды, podman как это:
alias docker ='podman'
Это означает, что каждый раз, когда вы входите docker , ваш компьютер все podman равно выполнит команду.
Надеюсь, вам понравилась эта статья про Podman, отличному маленькому инструменту, который позволит вам запускать контейнеры без демонов и root, чтобы ваша система оставалась простой, аккуратной и безопасной.