Установка Docker, Podman и запуск
Docker и Podman — две популярные платформы контейнеризации, используемые для разработки, тестирования и развертывания приложений. Docker широко используется, но Podman — более новый вариант, набирающий популярность благодаря своей безопасности и открытому исходному коду. В этой статье мы обсудим, как установить эти две платформы контейнеризации в Debian.
Шаг 1: Обновление Debian
Перед установкой Docker или Podman важно обновить систему Debian. Выполните следующие команды:
Приведенные выше команды помогут вам обновить и обновить вашу систему до последней версии.
Шаг 2: Установка Докера
Docker можно установить на Debian, используя официальный репозиторий Docker. Следующие шаги помогут вам установить Docker:
Установите необходимые пакеты:
Добавьте ключ Docker GPG:
Добавьте репозиторий Docker:
Установите Докер:
Создадим noroot пользователя, чтобы запускать docker без приставки sudo
adduser noroot
Добавим его в группу docker
usermod -aG docker noroot
Переключимся на него
su - noroot
Проверим установку Docker:
docker run hello-world
Если установка прошла успешно, вы увидите сообщение «Hello from Docker!» в вашем терминале.
Docker, по умолчанию запускается как привилегированный демон, что означает, что он может выполнять эти действия, даже если пользователь, запускающий его, не имеет привилегий root.
Однако Docker также может работать как непривилегированный пользователь, используя флаг --user. Это позволяет пользователям выполнять большинство операций Docker без привилегий root. Точно так же podman также может работать от имени пользователя без полномочий root, указав флаг
--user, и UID:GID (пользователя)
docker run --user 1000:1000 alpine echo "Привет от непривилегированного пользователя!"
В этом примере мы запускаем контейнер Alpine Linux и используем флаг --user для указания непривилегированного пользователя с UID и GID 1000. Команда, которую мы запускаем в контейнере, просто распечатывает сообщение. Когда мы запустим эту команду, Docker создаст контейнер и запустит команду от имени указанного пользователя, а не от имени пользователя root. Это помогает повысить безопасность контейнера, ограничивая потенциальный ущерб, который может быть нанесен привилегированным пользователем.
Podman следует стандартной модели безопасности Unix, где обычные пользователи не имеют разрешений на выполнение функций системного уровня, таких как создание образов и запуск контейнеров.
Шаг 3: Установка Podman
Podman — это платформа контейнеризации с открытым исходным кодом, альтернатива Docker. Следующие шаги помогут вам установить Podman:
Установите необходимые пакеты:
sudo apt install -y podman
Создадим noroot пользователя(если вы этого ещё не сделали на предыдущем шаге устанавливая docker)
adduser noroot
Переключимся на него
su - noroot
Обратите внимание, ещё на один момент, если при использовании podman, у вас выскакивает такая ошибка:
ERRO[0000] XDG_RUNTIME_DIR "run/user/0" is not owned by the current user.
Значит вы не правильно переключились на пользователя и указали просто
su username
(поскольку так вы, по сути, сохраняете среду предыдущего пользователя при доступе к учетной записи другого пользователя)
Поэтому, всегда делайте это с помощью (-)
(это открывает оболочку входа в среду, аналогичную реальному входу в систему)
su - username
-, -l, --login
И ещё один момент, в случае с podman,чтобы всё заработало, данного пользователя нужно обязательно добавить в группу sudo
Переключитесь на пользователя с sudo правами, или сделайте это от root, ещё до переключение на нового пользователя.
Откройте файл sudoers для редактирования с помощью следующей команды:
- Внизу файла добавьте новую строку со следующим синтаксисом, заменив <user_name> своим именем пользователя:
<user_name> ALL=(ALL:ALL) ALL
Проверьте установку Podman:
su - noroot
podman -v
Если установка прошла успешно, вы увидите установленную вами версию Podman в своем терминале.
И аналогичным образом выполним проверку, как мы это делали с docker для уверенности, чтобы убедиться, что всё работает:
podman run alpine echo "Привет от непривилегированного пользователя!"
Таким образом мы практически, из контейнера созданного с дистрибутивом alpine, взятого из соответствующего образа, запусили команду echo с соответствующим приветствием. Т.е. контейнер был создан по образу который мы указали после команды run
Сами образы Docker создаются разработчиками или получаются из реестров, таких как Docker Hub. Обычно они создаются с использованием Dockerfile, который содержит инструкции по сборке образа.
Образы Docker могут размещаться в разных местах и обычно хранятся в реестрах Docker. Docker Hub — самый популярный общедоступный реестр, где пользователи могут просматривать, загружать и обмениваться образами. Другие общедоступные реестры включают Google Container Registry и Red Hat Container Registry. В качестве альтернативы организации могут размещать свои собственные частные реестры, что позволяет им сохранять контроль над своими изображениями. Эти частные реестры могут размещаться локально или в облачной среде, такой как Amazon ECR или Azure Container Registry.
После создания с соблюдением регистра файла, Dockerfile, прописав нужные инструкции, для создания своего образа вызывается команда:
docker build -t my_image_name .
или
podman build -t my_image_name .
В статье с примером мы рассмотрим процесс создания своего образа, и запуск на его основе контейнера.
Пример команды, для запуска выше созданного podman контейнера:
podman run -d -e VAR_NAME=VAR_VALUE -e ANOTHER_VAR=ANOTHER_VALUE --restart=always --restart=unless-stopped my_image_name
в этом случае мы получим контейнер который будет запускаться в фоновом режиме (-d) вместе с системой (--restart=unless-stopped) и перезапускаться если остановится(--restart=always ), и ещё мы передаём в переменные окружения две переменные, через опцию (-e) с именем VAR_NAME=значение1 и ANOTHER_VAR=значение2
-
- Roman Sakhno
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.