Appearance
Podman
La alternativa a contenedores Docker
Muchas veces nos referimos a Docker como si fuese el unico gestor de contenedores cuando en realidad queremos hablar de contenedores. Y es que en el contexto de la virtulización ligera y los contenedores encontramos a Podman.
Este gestor de contenedores promueve ser mas ligero y seguro que Docker y homologa altamente sus comandos, de hecho, podríamos reemplazar el comando docker por podman y obtendríamos resultados semejantes. No solo se logra lo mismo que se hace con Docker sino más, por ejemplo se puede lanzar un contenedor de una aplicación sin necesidad del usuario root, además puede gestionar Pods acercándose a una propuesta sencilla de tecnologías como Kubernetes.
Podman funciona en diferentes sistemas operativos, incluso Windows, y tiene su versión de escritorio.
Instalación de Podman
En sistemas como Windows puedes descargar el instalador de la versión de escritorio. Para Linux Ubuntu usamos los siguientes comandos:
bash
sudo apt update
sudo apt install -y podman
podman -vEl último comando nos permite veríficar la versión instalada
En Linux Ubuntu/Debian, existe un intento para simular Docker con Podman usando el paquete podman-docker, para lo cual se ejecutan las siguientes sentencias:
bash
sudo apt install -y podman-docker
systemctl --user enable podman.socket
systemctl --user start podman.socket
systemctl --user status podman.socketSin embargo, puede ser preferible obtener la versión más reciente, para lo cual se usarían las siguientes sentencias:
bash
sudo add-apt-repository -y ppa:projectatomic/ppa
sudo apt update
sudo apt install -y podmanTambién se podría remover el repositorio así:
sudo add-apt-repository --remove ppa:projectatomic/ppa
Este repositorio funcionó con versiones Ubuntu 20 y 22, para 24 se han tenido inconvenientes de momento.
Reemplazando Docker por Podman
Podríamos modificar nuestro archivo .bashrc para incluir la siguiente línea que corresponde a un alias de Podman así:
bash
export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
alias docker=podmanPara macOS, en la primera línea se usaría:
export DOCKER_HOST=unix:///Users/$(whoami)/.local/share/containers/podman/machine/podman.sock
Después de guardar los cambios en el archivo podemos ejecutar lo siguiente para comprobar nuestro alias:
bash
source .bashrc
docker -vDe este modo hemos reemplazado y homologado el comando
docker, y hasta podemos usar sus mismas funciones.
Sin embargo, el archivo de contenedor deberá llamarseContainerfile(en lugar deDockerfile), al hacerpullse debe anteponer al repodocker.io/y quizás debamos ajustar algo mínimo en el camino.
Dependiendo de la necesidad, podría configurarse un socket de Podman para homologar algún servicio que use docker (como Portainer, Arcane, Dockhand), por ejemplo, ejecutando la siguiente sentencia:
bash
systemctl --user enable --now podman.socketPodman desde el navegador con Cockpit
bash
sudo dnf install cockpit cockpit-podman
sudo systemctl enable --now cockpit.socket podman.servicePuedes acceder a la intefaz web consultando en un navegador la dirección:
https://localhost:9090
Removiendo Docker en Linux
Si tienes previamente una instalación de Docker en tu sistema Linux, puede ser conveniente remover los paquetes respectivos antes de instalar Podman. Para ello puedes ejecutar las siguientes sentencias:
bash
sudo docker stop $(sudo docker ps -aq)
sudo docker rm $(sudo docker ps -aq)
sudo docker volume prune
sudo docker image prune
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker volume ls | xargs -r docker volume rm
docker images -q | xargs -r docker rmi -f
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo apt autoremove -y
sudo apt purge ...es el comando que desinstala los paquetes, solo que antes de ello liberamos contenedores existentes
Adicionalmente, puede considerarse limpiar archivos en directorios que haya dejado Docker, por ejemplo:
bash
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /usr/local/bin/docker-compose
sudo rm /etc/apt/soources.list.d/docker.list
sudo apt update