GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Podman en Debian 11

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 comandos de Docker, usar podman será muy sencillo.

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

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

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

$ sudo podman info

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

Configurar los registros de Podman

El archivo de registro registry.conf es un archivo de configuración que especifica los registros de contenedores que se utilizarán siempre que desee enviar 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 la podman search o podman pull comando, podman se pondrá en contacto 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

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

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

$ sudo podman logout registry.access.redhat.com

Extracción 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

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

$ sudo podman pull docker.io/library/mongo

Listar 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 --name opció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

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 el ID del contenedor, el nombre de la IMAGEN, el comando que ejecuta el contenedor, la fecha de creación y el estado.

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 utilizando el podman ps dominio. Podemos ver claramente que después de detener la imagen, solo tenemos 1 imagen en ejecución.

El podman ps -a El comando enumerará ambos contenedores que comprenden el contenedor que se acaba de detener.

$ sudo podman ps -a

Inicio de 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

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 -it opción.

$ sudo podman run --name ubuntu -it docker.io/library/ubuntu  /bin/bash
  • -i, –interactive Mantenga STDIN abierto incluso si no está conectado
  • -t, –tty Asigna un pseudo-TTY. El valor predeterminado es falso

Comprobar los registros de un contenedor

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

$ sudo podman logs container_name

Por ejemplo:

$ sudo podman logs webserv2

Mostrar estadísticas de contenedores

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

$ sudo podman stats

Inspeccionar un contenedor

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

$ sudo podman inspect webserv2

Esto imprime una salida larga en formato JSON.

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}}'

A continuación, puede obtener información adicional de la IP, por ejemplo, utilizando curl para recuperar encabezados HTTP.

$ curl -I ip-address

Eliminar 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

Eliminar 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 el rmi opció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

Instalar Podman más reciente:compilar desde la fuente

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

01. Crear 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 en 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

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

El complemento CNI se utiliza 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.


Debian
  1. Cómo instalar Debian 10 (Buster)

  2. Cómo instalar Python 3.9 en Debian 10

  3. Cómo instalar Memcached en Debian 10

  4. Cómo instalar TeamViewer en Debian 10

  5. Cómo instalar Git en Debian 9

Cómo instalar Skype en Debian 9

Cómo instalar Python 3.7 en Debian 9

Cómo instalar R en Debian 10

Cómo instalar Debian 11

Cómo instalar Go en Debian 10

Cómo instalar Go en Debian