Cómo instalar Podman como alternativa de Docker en Debian 11

Cómo instalar Podman como alternativa de Docker en Debian 11

Podman (el POD MANager) es un motor de contenedor compatible con OCI, desarrollado por Red Hat como reemplazo directo de Docker. Se utiliza para administrar y ejecutar contenedores, im√°genes y vol√ļmenes a trav√©s de una interfaz de l√≠nea de comandos. Tanto Docker como Podman son software similar. La √ļnica diferencia es que Podman no requiere un demonio para ejecutar contenedores, mientras que Docker necesita el demonio Docker Engine. Podman usa la biblioteca libpod para administrar un ecosistema de contenedores completo.

En este tutorial, le mostraremos cómo instalar y usar Podman en Debian 11.

requisitos previos

  • Un servidor que ejecuta Debian 11.
  • Una contrase√Īa de root est√° configurada en el servidor.

Instalar podman

El paquete Podman est√° incluido en el repositorio predeterminado de Debian 11. Puede instalarlo simplemente ejecutando el siguiente comando:

apt-get install podman -y

Una vez que Podman esté instalado, verifique la versión de Podman usando el siguiente comando:

podman --version

Debería ver la versión de Podman en el siguiente resultado:

podman version 3.0.1

Puede obtener más información de Podman usando el siguiente comando:

podman info

Obtendr√° el siguiente resultado:

host:
  arch: amd64
  buildahVersion: 1.19.6
  cgroupManager: systemd
  cgroupVersion: v2
  conmon:
    package: 'conmon: /usr/bin/conmon'
    path: /usr/bin/conmon
    version: 'conmon version 2.0.25, commit: unknown'
  cpus: 2
  distribution:
    distribution: debian
    version: "11"
  eventLogger: journald
  hostname: debian11
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 5.10.0-8-amd64
  linkmode: dynamic
  memFree: 3365183488
  memTotal: 4122267648
  ociRuntime:
    name: crun
    package: 'crun: /usr/bin/crun'
    path: /usr/bin/crun
    version: |-
      crun version 0.17
      commit: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  os: linux
  remoteSocket:
    exists: true
    path: /run/podman/podman.sock
  security:
    apparmorEnabled: true
    capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
    rootless: false
    seccompEnabled: true
    selinuxEnabled: false

Agregar Registro OCI

Podman usa el archivo de configuración del registro /etc/containers/registries.conf para extraer todas las imágenes de contenedores de Internet. Por lo tanto, deberá editarlo y definir el registro:

nano /etc/containers/registries.conf

Agregue las siguientes líneas al final del archivo:

[registries.insecure]
registries = [ ]
# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
# Docker only
[registries.block]
registries = [ ]

Guarde y cierre el archivo cuando haya terminado.

Cómo usar Podman

En esta sección, le mostraremos cómo usar el comando Podman para extraer imágenes y ejecutar un contenedor.

Para obtener una imagen de Debian, ejecute el siguiente comando:

podman pull debian

Obtendr√° el siguiente resultado:

Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob 647acf3d48c2 done  
Copying config 827e561138 done  
Writing manifest to image destination
Storing signatures
827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

Puede ver su imagen descargada usando el siguiente comando:

podman images

Obtendr√° el siguiente resultado:

REPOSITORY                TAG     IMAGE ID      CREATED      SIZE
docker.io/library/debian  latest  827e5611389a  11 days ago  129 MB

A continuación, ejecute un contenedor desde la imagen de Debian con el siguiente comando:

podman run -dit debian:latest

Obtendr√° el siguiente resultado:

f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103

Puede enumerar todos los contenedores en ejecución con el siguiente comando:

podman ps

Debería ver el siguiente resultado:

CONTAINER ID  IMAGE                            COMMAND  CREATED         STATUS             PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     13 seconds ago  Up 13 seconds ago          competent_cori

Para inspeccionar el contenedor en ejecución, ejecute el comando Podman especificando el ID del contenedor:

podman inspect f85c4df5ab78

Obtendr√° el siguiente resultado:

[
    {
        "Id": "f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103",
        "Created": "2021-11-28T07:00:12.795302341Z",
        "Path": "bash",
        "Args": [
            "bash"
        ],
        "State": {
            "OciVersion": "1.0.2-dev",
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 6881,
            "ConmonPid": 6878,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-11-28T07:00:13.551753552Z",
            "FinishedAt": "0001-01-01T00:00:00Z",
            "Healthcheck": {
                "Status": "",
                "FailingStreak": 0,
                "Log": null
            }
        },

Para verificar el registro del contenedor, ejecute el siguiente comando:

podman logs f85c4df5ab78

Si desea conectarse al contenedor en ejecución, ejecute el siguiente comando:

podman exec -it f85c4df5ab78 /bin/bash

Accederá al caparazón del contenedor como se muestra a continuación:

[email protected]:/#

Para salir del shell del contenedor, ejecute el siguiente comando:

[email protected]:/# exit

Cómo detener y retirar un contenedor

También puede usar Podman para iniciar, detener y eliminar un contenedor.

Para detener un contenedor en ejecución, ejecute el siguiente comando:

podman stop f85c4df5ab78

Ahora puede verificar el contenedor detenido usando el siguiente comando:

podman ps -a

Debería ver el siguiente resultado:

CONTAINER ID  IMAGE                            COMMAND  CREATED        STATUS                       PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     3 minutes ago  Exited (137) 10 seconds ago          competent_cori

Para eliminar un contenedor detenido, ejecute el siguiente comando:

podman rm f85c4df5ab78

Si desea detener el √ļltimo contenedor, ejecute el siguiente comando:

podman stop --latest

Para iniciar el contenedor m√°s reciente, ejecute el siguiente comando:

podman start --latest

Para eliminar el contenedor m√°s reciente, ejecute el siguiente comando:

podman rm --latest

Para eliminar todos los contenedores en ejecución, ejecute el siguiente comando:

podman rm -f `podman ps -aq`

Para eliminar una imagen, ejecute el siguiente comando:

podman rmi 827e5611389a

Obtendr√° el siguiente resultado:

Untagged: docker.io/library/debian:latest
Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

Conclusión

En la publicación anterior, explicamos cómo instalar y usar Podman en Debian 11. Ahora puede usar Podman como reemplazo de Docker para ejecutar y administrar los contenedores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *