Cómo instalar Podman en Debian 11 | Debian 10

Cómo instalar Podman en Debian 11 | Debian 10

 

Desarrollado por RedHat, Podman es un motor de contenedor sin daemonless gratuito y de código abierto diseñado para ser un reemplazo directo del popular motor de tiempo de ejecución Docker. Al igual que Docker, facilita la creación, ejecución, implementación y uso compartido de aplicaciones utilizando imágenes de contenedores y contenedores OCI (Open Container Initiative). Podman usa espacios de nombres de usuario y de red y, en comparación con Docker, Podman se considera más aislado y seguro. La mayoría de los comandos de Docker funcionarán en Podman. por lo tanto, si está familiarizado con la ejecución de los comandos de Docker, usar podman será muy sencillo.

En esta guía, aprendemos cómo instalar podman en Debian 11 Bullseye.

Instalar Podman en Debian 11

Los paquetes, bibliotecas y dependencias de podman ya están alojados en los repositorios oficiales de Debian. Por lo tanto, puede instalar podman fácilmente usando el administrador de paquetes APT.

Primero, actualice las listas de paquetes:

$ sudo apt update

A continuación, instale el motor del contenedor podman de la siguiente manera:

$ sudo apt install podman

Cuando se le solicite continuar, escriba ‘Y’ y presione ENTER.

Para verificar la versión de Podman instalada, ejecute:

$ podman --version
Cómo instalar Podman en Debian 11

Para recopilar más detalles sobre el motor del contenedor podman, ejecute el comando:

$ sudo podman info

Debería ver una ráfaga de salida que muestra detalles intrincados como los que tenemos a continuación.

Cómo instalar Podman en Debian 11

Configurar los registros de Podman

El archivo de registro registry.confes un archivo de configuración que especifica los registros de contenedores que se utilizarán siempre que desee insertar o extraer una imagen. La ruta completa al archivo es /etc/containers/registries.conf. Existen varios registros de contenedores, incluidos Docker hub, Quay.io, RedHat y muchos más.

Puede ver el archivo usando su editor de texto como se muestra

# sudo /etc/containers/registries.conf

En Docker, el único registro de contenedores es Docker Hub. Podman ofrece a los usuarios más libertad para buscar y extraer imágenes de cualquier registro. Puede definir la lista de registros de contenedores agregando la siguiente línea.

unqualified-search-registries = [ 'registry.access.redhat.com', 'registry.redhat.io', 'docker.io']

Al ejecutar el comando podman searchpodman pull, podman se comunicará con estos registros comenzando con el primero en ese orden. Guarde los cambios y salga del archivo.

Buscando imágenes

Antes de extraer imágenes de contenedores, es prudente buscar su disponibilidad en varios registros.

Por ejemplo

$ sudo podman search nginx
Cómo instalar Podman en Debian 11

El resultado le presenta una gran cantidad de información, incluido el nombre del registro, el nombre de la imagen y una breve descripción.

Iniciar sesión en un registro

Antes de comenzar a extraer o enviar imágenes, debe iniciar sesión en un registro. En el siguiente ejemplo, estoy iniciando sesión en mi cuenta de Redhat que, en efecto, me da acceso al registro.

$ sudo podman login registry.access.redhat.com
Cómo instalar Podman en Debian 11

Para cerrar sesión en el registro, ejecute el comando:

$ sudo podman logout registry.access.redhat.com

Tirando de una imagen

Para extraer una imagen, use la sintaxis:

$ sudo podman pull image_name

Por ejemplo, para obtener las imágenes de compilación oficiales de Nginx, ejecute el comando:

$ sudo podman pull docker.io/library/nginx
Cómo instalar Podman en Debian 11

Intentemos sacar otra imagen. Extraeremos la imagen oficial de MongoDB de la siguiente manera.

$ sudo podman pull docker.io/library/mongo
Cómo instalar Podman en Debian 11

Listado de una imagen

Para enumerar todas las imágenes, emita el comando.

$ sudo podman images
Crear un contenedor a partir de una imagen

Ahora que tenemos nuestras imágenes residiendo en el sistema Debian, podemos lanzar un contenedor usando la sintaxis que se muestra. La opción -d ejecuta el contenedor en segundo plano y la --nameopción especifica un nombre personalizado para el contenedor.

$ sudo podman run -d  --name container_name  image

Por ejemplo, para lanzar un contenedor en segundo plano llamado webserv1 desde la imagen de Nginx, ejecute el comando:

$ sudo podman run  -d --name webserv1 docker.io/library/nginx

Puede lanzar varios contenedores desde la misma imagen. Lancemos otro contenedor llamado webserv2 desde la misma imagen de Nginx.

$ sudo podman run -d --name webserv2  docker.io/library/nginx
Cómo instalar Podman en Debian 11

Listado de contenedores

En esta sección, veremos varios comandos que puede usar con contenedores.

Para verificar los contenedores que se están ejecutando actualmente, emita el comando:

$ sudo podman ps

El resultado se presenta en columnas que brindan información como la ID del contenedor, el nombre de la IMAGEN, el comando que ejecuta el contenedor, la fecha de creación y el estado.

Cómo instalar Podman en Debian 11

Para enumerar todos los contenedores, incluidos los que han salido, ejecute:

$ sudo podman ps -a

Detener un contenedor

Para detener un contenedor, use la sintaxis

$ sudo podman stop CONTAINER_ID

O

$ sudo podman stop container_name

En el ejemplo a continuación, detuve el primer contenedor enumerado usando su ID de contenedor

$ sudo podman stop 9daeaabdfdfc

Puede verificar que el contenedor se ha detenido usando el podman ps comando. Podemos ver claramente que después de detener la imagen, solo tenemos 1 imagen en ejecución.

Cómo instalar Podman en Debian 11

El podman ps -acomando enumerará ambos contenedores que comprenden el contenedor que acaba de detenerse.

$ sudo podman ps -a
Cómo instalar Podman en Debian 11

Iniciando un contenedor

Para iniciar un contenedor use la sintaxis:

$ sudo podman start CONTAINER_ID

O

$ sudo podman start container_name

Por ejemplo, para iniciar webserv1, ejecute:

$ sudo podman start webserv1
Cómo instalar Podman en Debian 11

Acceder al caparazón de un contenedor

El acceso al shell de un contenedor se demuestra mejor con un contenedor de un sistema operativo.

Aquí, vamos a descargar o extraer una imagen de Ubuntu:

$ sudo podman pull docker.io/library/ubuntu

A partir de la imagen, crearemos o lanzaremos un contenedor y obtendremos acceso al shell usando la -itopción.

$ sudo podman run --name ubuntu -it docker.io/library/ubuntu  /bin/bash

Cómo instalar Podman en Debian 11

  • -i, –interactive Mantenga STDIN abierto incluso si no está conectado
  • -t, –tty Asigna un pseudo-TTY. El valor predeterminado es falso

Consultar los logs de un contenedor

Para verificar los registros de un contenedor, use la sintaxis:

$ sudo podman logs container_name

Por ejemplo:

$ sudo podman logs webserv2
Cómo instalar Podman en Debian 11

Mostrar estadísticas de contenedores

Para mostrar las estadísticas de todos los contenedores en ejecución, ejecute:

$ sudo podman stats

Cómo instalar Podman en Debian 11

Inspeccionar un contenedor

Para imprimir detalles complejos sobre un contenedor, utilice la opción de inspección:

$ sudo podman inspect webserv2

Esto imprime una salida larga en formato JSON.

Cómo instalar Podman en Debian 11

Utilice la opción –format para filtrar la salida. Por ejemplo, para imprimir la dirección IP del contenedor webserv2, ejecute

$ sudo podman inspect webserv2 --format '{{.NetworkSettings.IPAddress}}'

Luego puede realizar información adicional sobre la IP, por ejemplo, usando curl para recuperar encabezados HTTP.

$ curl -I ip-address
Cómo instalar Podman en Debian 1116

Eliminación de un contenedor

Para eliminar o eliminar un contenedor por completo, primero detenga el contenedor, en caso de que se esté ejecutando, y finalmente elimínelo. En este ejemplo, hemos detenido y eliminado el contenedor websev1.

$ sudo podman stop webserv1

Luego retire el contenedor detenido.

$ sudo podman rm webserv1

Cómo instalar Podman en Debian 1116

Eliminación de una imagen

Para eliminar una imagen, primero asegúrese de haber detenido y eliminado todos los contenedores que se iniciaron desde la imagen. A continuación, utilice la rmiopción como se muestra.

$ sudo podman rmi image_name

Por ejemplo, para eliminar la imagen de ubuntu, ejecute el comando:

$ sudo podman rmi  docker.io/library/ubuntu
Cómo instalar Podman en Debian 1116

Instale el último Podman – Compile desde la fuente

Puede probar la última versión de Podman instalando la versión de desarrollo desde la fuente.

01. Construir y ejecutar dependencias

sudo apt-get install \
   btrfs-progs \
   git \
   golang-go \
   go-md2man \
   iptables \
   libassuan-dev \
   libbtrfs-dev \
   libc6-dev \
   libdevmapper-dev \
   libglib2.0-dev \
   libgpgme-dev \
   libgpg-error-dev \
   libprotobuf-dev \
   libprotobuf-c-dev \
   libseccomp-dev \
   libselinux1-dev \
   libsystemd-dev \
   pkg-config \
   runc \
   make \
   libapparmor-dev \
   gcc \
   cmake \
   uidmap \
   libostree-dev 

02. Instalar común

El común es el monitor del contenedor, que es un pequeño programa C cuyo trabajo es observar el proceso principal del contenedor.

git clone https://github.com/containers/conmon
cd conmon
make
sudo make podman
sudo cp /usr/local/libexec/podman/conmon  /usr/local/bin/

03. Instalar runc

Para instalar la última versión de runc

git clone https://github.com/opencontainers/runc.git $GOPATH/src/github.com/opencontainers/runc
cd $GOPATH/src/github.com/opencontainers/runc
make BUILDTAGS="selinux seccomp"
sudo cp runc /usr/bin/runc

04. Instalar la interfaz de red de contenedores (CNI)

El complemento CNI se usa para insertar una interfaz de red en el espacio de nombres de red del contenedor.

git clone https://github.com/containernetworking/plugins.git $GOPATH/src/github.com/containernetworking/plugins
cd $GOPATH/src/github.com/containernetworking/plugins
./build_linux.sh
sudo mkdir -p /usr/libexec/cni
sudo cp bin/* /usr/libexec/cni

Configurar la red

sudo mkdir -p /etc/cni/net.d
curl -qsSL https://raw.githubusercontent.com/containers/libpod/master/cni/87-podman-bridge.conflist | sudo tee /etc/cni/net.d/99-loopback.conf

Agregar la configuración

sudo mkdir -p /etc/containers
sudo curl -L -o /etc/containers/registries.conf https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf
sudo curl -L -o /etc/containers/policy.json https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json

04. Instalar Podman desde la fuente

git clone https://github.com/containers/podman/ $GOPATH/src/github.com/containers/podman
cd $GOPATH/src/github.com/containers/podman
make
sudo make install
$ podman --version
podman version 4.0.0-dev

Conclusión

Esperamos haber proporcionado una base sólida en su viaje para convertirse en un mejor profesional en el uso de podman para crear y administrar contenedores. Esta guía lo guió a través de la instalación de podman en Debian 11 Buster.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.