GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar y usar Podman (alternativa de Docker)

¿Alguna vez ha usado Docker pero descubrió que consume demasiados recursos en su sistema? Si es así, quizás desee consultar Podman, una nueva herramienta de Red Hat que ofrece una alternativa a Docker.

Podman es una herramienta diseñada para que la creación y la gestión de contenedores sean perfectas. Y en este tutorial, instalará Podman y aprenderá algunos escenarios de uso básicos. Al final, podrá decidir si Podman es la herramienta adecuada para usted.

¿Listo? ¡Siga leyendo y empiece a gestionar contenedores de nuevo!

Requisitos previos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de tener lo siguiente.

  • Una máquina Linux:esta demostración usa Ubuntu 20.04 LTS, pero cualquier distribución de Linux funcionará.
  • Un usuario no root con privilegios sudo.

Instalación de Podman en Ubuntu

Antes de administrar contenedores con Podman, primero deberá instalar Podman en su máquina, ya que no viene preinstalado en su distribución de Linux.

Para instalar Podman en Ubuntu, comenzará actualizando su administrador de paquetes APT y agregando el repositorio de paquetes de Podman.

1. Abre tu terminal y ejecuta el apt update Comando a continuación para asegurarse de instalar las últimas actualizaciones. Este comando asegura que no haya discrepancias de paquetes entre su máquina y el repositorio de paquetes.

sudo apt update -y

2. Una vez que haya actualizado el índice de su paquete, ejecute el source comando a continuación para ejecutar el /etc/os-release archivo como un script. Este comando asegura que su máquina reconocerá qué versión de Ubuntu está usando.

El archivo os-release contiene información del sistema operativo, como el nombre y el nombre en clave. El archivo también puede incluir otros detalles como números de versión de varios componentes (kernel, servidor X, etc.)

source /etc/os-release

3. Ejecute el sh -c echo comando a continuación para agregar el kubic repositorio de paquetes deb a APT. Podman no está disponible en los repositorios predeterminados de Ubuntu, por lo que deberá agregar el repositorio de Podman antes de instalarlo.

El siguiente comando realiza lo siguiente:

  • Crea un nuevo archivo (sh -c ) en el /etc/apt/sources.list.d/ directorio. Este directorio es donde APT descarga los paquetes deb para instalarlos en su máquina.
  • Se asegura de que está utilizando una versión específica de Ubuntu ({VERSION_ID} ), que es la versión que obtuviste previamente del source comando anterior en el paso dos.
  • Redirecciona la salida (> ) para escribir en la parte inferior del archivo, asegurándose de que su entrada se escriba en el archivo correctamente (sources.list.d/devel:kubic:libcontainers:stable.list ).
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"

4. Ahora, ejecuta el wget Comando a continuación para agregar la clave del repositorio a la lista de claves confiables de APT.

Red Hat aloja la clave y la firman con una clave privada que solo verifica a otras personas que tienen su clave pública. Esta clave garantiza que Red Hat, y no otra persona, publique los paquetes que descargue e instale.

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

5. Vuelva a ejecutar el apt update comando para asegurarse de que la lista de paquetes de APT esté actualizada.

sudo apt update -y

6. A continuación, ejecute el apt install comando a continuación para instalar podman .

sudo apt install podman -y

7. Finalmente, ejecute el siguiente comando para verificar el --version instalado de Podman .

podman --version

Como puede ver a continuación, la versión de Podman instalada es la 3.4.2, la última versión en el momento de escribir este artículo, y la suya puede ser diferente.

También puede ejecutar el comando podman inf a continuación para ver más información sobre su instalación de Podman.

podman info

Habilitación de registros OCI

Antes de usar Podman para crear contenedores, asegúrese de que Podman pueda comunicarse con los registros de OCI. Podman admite varios registros OCI simultáneamente para que pueda crear contenedores usando diferentes repositorios.

Abre el /etc/containers/registries.conf archivo con el editor de texto de su elección. Este archivo define todos los registros con los que Podman puede comunicarse. Podman consulta este archivo para averiguar a qué registros debe conectarse.

sudo nano /etc/containers/registries.conf

Ahora, complete el registries.conf archivo con las siguientes líneas, guarde los cambios y cierre el editor.

Estas líneas configuran Podman para usar el registro público en Docker Hub (docker.io, registration.access.redhat.com ) y el registro privado (quay.io ), que se recomienda.

[[registry]]
prefix="[quay.io]()"
location="internal.registry.mirror/quay"
[[registry]]
prefix="[docker.io]()"
location="internal.registry.mirror/docker"
[[registry]]
prefix="[registry.access.redhat.com]()"
location="internal.registry.mirror/redhat"

Ejecutar contenedores Podman con privilegios de Podman

Ahora que instaló Podman y configuró los registros, puede comenzar a ejecutar contenedores de Podman con privilegios de Podman. El kernel de Linux admite una amplia gama de verificaciones de permisos en sus llamadas al sistema, como capacidades.

En el caso de los contenedores de Podman, las capacidades controlan el comportamiento predeterminado de root dentro del espacio de nombres del usuario. Puedes usar el --privileged marca al ejecutar un contenedor para agregar todas las capacidades que aún no están presentes en el contenedor.

1. Ejecute el podman run comando a continuación para crear un fedora contenedor sin capacidades.

podman run -d fedora sleep 100

2. A continuación, ejecute el siguiente podman top Comando para listar todas las capacidades.

podman top -l capeff 

Como se muestra a continuación, el contenedor normal sin raíz tiene capacidades limitadas.

3. Ejecute el podman run comando a continuación para crear un contenedor con todas las capacidades (--privileged ).

podman run --privileged -d fedora sleep 100

4. Por último, vuelva a ejecutar el podman top Comando para comprobar la diferencia de capacidades.

podman top -l capeff

Notará que todas las capacidades están disponibles para este contenedor debido a la marca de privilegios, como se muestra a continuación.

Notará que las capacidades completas están disponibles para este contenedor debido al indicador privilegiado, como se muestra. El indicador privilegiado permite que el contenedor se ejecute con todas las capacidades, no solo con las que ya están en el contenedor. Esta bandera es importante ya que asigna el espacio de nombres de usuario del contenedor al espacio de nombres del host, lo que le brinda todas las capacidades de los procesos que se ejecutan en su sistema.

Si no configura la marca –privilegiada cuando lanza un contenedor, entonces el contenedor tendrá un conjunto restringido de capacidades. En el caso de los contenedores que utilizan su propio espacio de nombres de usuario, deberá otorgarles todas las capacidades de forma explícita.

Trabajar con imágenes y contenedores de Podman

Ahora que ha aprendido a agregar registros OCI y capacidades para un contenedor, puede trabajar con imágenes y contenedores de Podman. Para esta demostración, usará NGINX para una imagen para crear un contenedor.

1. Ejecute el podman search Comando a continuación para enumerar todas las imágenes de Podman disponibles para nginx

podman search nginx

A continuación, puede ver que obtiene todas las imágenes etiquetadas disponibles para NGINX de docker.io , muelle.io y redhat.com repositorio que agregó anteriormente en la sección "Habilitación de registros OCI":

  • El ÍNDICE columna muestra dónde se encuentran las imágenes.
  • El OFICIAL columna con OK el estado indica que la imagen de la fila ha sido creada y respaldada por su empresa oficial. Por ejemplo, el NGINX imagen con OK El estado es creado y respaldado por su empresa, NGINX. Estas imágenes se actualizarán tan pronto como aparezcan las vulnerabilidades de seguridad y las actualizaciones de parches.
  • El AUTOMATIZADO columna con OK status significa que las imágenes son compilaciones automatizadas. Estas imágenes se actualizarán tan pronto como aparezcan las vulnerabilidades de seguridad y las actualizaciones de parches.

2. Después de elegir una imagen NGINX para usar, ejecute el podman comando a continuación para descargar (pull ) la imagen a su máquina local.

Esta demostración usa nginx:alpine ya que es la imagen más pequeña y solo puede ejecutarse en la memoria, lo que ahorra tiempo en los pasos de compilación posteriores.

podman pull nginx:alpine

En este punto, tiene una nueva imagen que puede usar para crear un contenedor o usarla como imagen base para otros contenedores.

3. Ejecute el podman images Comando para ver la información de tu nueva imagen

podman images

4. Ahora, ejecuta el podman run comando a continuación para crear un contenedor a partir de la imagen (nginx:alpine ) y ejecute un nginx servidor en esa imagen.

Este comando realiza lo siguiente:

  • Inicia el contenedor de forma interactiva (-it ) y le permite conectar un terminal.
  • Elimina (--rm ) el contenedor después de que salga/se detenga.
  • Ejecuta el contenedor en segundo plano (--d ) y publica (-p ) puerto 80 en todas las interfaces al puerto 8080 en el contenedor.
  • Especifique el nombre del contenedor (--name web ).
podman run -it --rm -d -p 8080:80 --name web nginx:alpine

Obtendrá una identificación de contenedor aleatoria, como se muestra a continuación, que puede usar para monitorear/iniciar/detener/eliminar el contenedor. Anote el ID del contenedor, ya que resulta útil al comprobar los registros o detener un contenedor específico.

5. Ejecute el siguiente podman ps comando (sin argumentos) para verificar si su contenedor se está ejecutando.

podman ps

Puede ver que el contenedor web está activo y usa el puerto 8080/TCP en su máquina host para exponer su recurso.

6. Para verificar dos veces, abra su navegador web y vaya a localhost:8080 o su-servidor-ip:8080 , donde su-ip-de-servidor es la dirección IP de su servidor.

Si su contenedor funciona, verá la pantalla de bienvenida predeterminada de NGINX, como se muestra a continuación.

Si no está seguro de cómo está configurado el contenedor, o si tiene algún error, ejecute el siguiente comando podman logs para obtener los archivos de registro del contenedor. Reemplace mycontainer con su ID de contenedor de destino.

podman logs mycontainer

7. Ejecute cualquiera de los podman stop Comandos a continuación para detener su contenedor. Reemplazar mycontainer con su ID de contenedor de destino, o reemplace web con el nombre real del contenedor.

Dado que usó el indicador –rm en el paso cuatro, Podman elimina su contenedor tan pronto como lo detiene. Esta configuración ayuda a mantener tu espacio de trabajo ordenado.

# Stops the container by Container ID
podman stop mycontainer
# Stops the container by Container Name
podman stop web

8. Finalmente, ejecuta el podman ps Comando para enumerar todos los contenedores, incluido un contenedor detenido.

podman ps -a

Su contenedor se eliminó cuando lo detuvo anteriormente, por lo que no aparecerá nada en la lista, como se muestra a continuación.

Conclusión

A lo largo de este artículo, ha aprendido a instalar Podman y cómo trabajar con imágenes y contenedores para implementaciones. En este punto, ahora puede usar las imágenes habilitadas para OCI de docker.io , muelle.io y redhat.com repositorios para crear sus propios contenedores.

Con este nuevo conocimiento, ¿por qué no crea sus pods de Kubernetes con Podman play kube o comienza a usar Ansible para automatizar los contenedores de Podman?


Linux
  1. Cómo instalar y usar Docker en Ubuntu 20.04

  2. Cómo instalar y usar Docker en Ubuntu 18.04

  3. Cómo instalar y usar Docker en Ubuntu 20.04

  4. Cómo instalar y usar Podman en Fedora 34/35

  5. Cómo instalar y usar el comando ping en Linux

Cómo instalar y usar el comando fd en Linux

Cómo instalar y usar Docker en Ubuntu 22.04

Cómo instalar y usar Docker en CentOS 8

Cómo instalar y usar Docker en AlmaLinux 8

Cómo instalar y usar Snapd en Debian 11

Cómo instalar y usar Docker en su sistema Linux