Bootstrap

Установка Docker, Podman и запуск

Установка Docker, Podman и запуск

Docker и Podman — две популярные платформы контейнеризации, используемые для разработки, тестирования и развертывания приложений. Docker широко используется, но Podman — более новый вариант, набирающий популярность благодаря своей безопасности и открытому исходному коду. В этой статье мы обсудим, как установить эти две платформы контейнеризации в Debian.

Шаг 1: Обновление Debian

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


sudo apt upgrade -y

sudo apt  update

Приведенные выше команды помогут вам обновить и обновить вашу систему до последней версии.

Шаг 2: Установка Докера

Docker можно установить на Debian, используя официальный репозиторий Docker. Следующие шаги помогут вам установить Docker:

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


sudo apt-get install  apt-transport-https ca-certificates curl gnupg lsb-release

Добавьте ключ Docker GPG:


curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  

Добавьте репозиторий Docker:


echo \
   "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null  update

Установите Докер:


sudo apt-get install  docker-ce docker-ce-cli containerd.io

Создадим 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 для редактирования с помощью следующей команды:


sudo visudo 

- Внизу файла добавьте новую строку со следующим синтаксисом, заменив <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 и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: