Para los usuarios de Windows y macOS, Docker Desktop ha sido la forma principal de usar los contenedores Docker durante muchos años. Si bien sigue siendo una opción viable y utilizable para aficionados y pequeños equipos de desarrollo, los cambios recientes en los precios para bases de usuarios más grandes hicieron que las personas buscaran alternativas. No estoy buscando reemplazar Docker Desktop yo mismo, pero estaba interesado en probar las alternativas y ver cómo se comparan.
Puede encontrar una versión en video de esta publicación con más información práctica sobre el uso de la cobertura de cada herramienta en YouTube.
Los contenedores en sí mismos no son un concepto nuevo en tecnología, pero Docker a mediados de la década de 2000 popularizó el concepto y los comercializó de la manera correcta en el momento adecuado para llevar el concepto a la corriente principal.
Vale la pena separar Docker, la empresa, de Docker, el proyecto, ya que es fácil confundirlos y son entidades distintas. Debido a esta confusión, Docker, la empresa, cambió el nombre y abrió el código de muchas de sus tecnologías relacionadas con los contenedores, lo que contribuyó a lo que ahora se conoce como la " Iniciativa de contenedores abiertos " (OCI).
Estoy resumiendo y resumiendo mucho aquí, pero cuando el resto de esta publicación se refiere a contenedores "compatibles con OCI" y términos similares, piense en ello como algo análogo a lo que podría pensar como un "contenedor Docker". Todos estos eventos y cambios en realidad ocurrieron hace algún tiempo en el tiempo de la tecnología, pero aún así, es una fuente constante de confusión. Tldr… Todas las opciones presentadas en esta publicación pueden ejecutar las mismas definiciones de contenedor y esto incluye sus contenedores preexistentes de Docker Desktop o creados con un Dockerfile . Otra nota, a menudo los proyectos se refieren a los contenedores que se ejecutan con Docker como "dockerd" y "Moby" indistintamente.
Probablemente la alternativa más popular, Podman tiene muchos colaboradores de Red Hat y, como parece que Red Hat está planeando versiones comerciales de Podman, se puede decir que es un "proyecto de Red Hat".
Está disponible para Windows, macOS y Linux y, como muchas de las otras herramientas que se presentan aquí, sigue una sintaxis similar a la de Docker con dos advertencias:
podman
en lugar de Docker, pero puede crear un alias y olvidarse de ese cambio de comando.
Una de las diferencias clave entre Podman y las otras alternativas presentadas aquí, incluido Docker Desktop, es que no tiene demonios. Esto significa que cada contenedor en ejecución se ejecuta como su propio proceso de tiempo de ejecución, no a través de un demonio. Si el demonio de Docker falla, todos los contenedores en ejecución fallan, mientras que con Podman, solo falla el contenedor individual. Dicho esto, personalmente nunca he tenido fallas en el demonio de Docker, pero no estoy ejecutando cargas de trabajo de producción.
Como todas las demás herramientas aquí, en la primera ejecución, Podman necesita crear una máquina virtual en macOS y Windows para alojar los contenedores. Cada vez más en macOS y Windows, esto no siempre es necesario, pero tiene sentido para lograr la máxima compatibilidad multiplataforma (y arquitectura). Podman usa Fedora CoreOS (nuevamente está esa conexión de Red Hat) y QEMU para ejecutar la máquina virtual.
El compañero gráfico de Podman es Podman Desktop , pero en teoría debería enumerar imágenes y contenedores creados por otros tiempos de ejecución, inc. Al igual que muchas de las otras herramientas gráficas, también agrega funciones para interactuar con Kubernetes, pero las analizaré en una publicación futura. Ofrece muchas de las mismas funciones que Docker Desktop, incluidas funciones que no sabía que seguían ningún estándar, como extensiones, pero está un poco menos pulido y carece de algunas de las funciones específicas del sistema operativo que ofrece Docker Desktop.
Solo disponible para Linux y macOS, Colima usa Lima para habilitar máquinas virtuales Linux en macOS. Es compatible con los tiempos de ejecución de Docker, Containerd y Kubernetes y, en todos los casos, debe instalar ese tiempo de ejecución junto con Colima. En el caso de Docker en macOS, esto no es completamente igual que Docker Desktop.
Tan simple como es usar Colima, el hecho de que aún necesite instalar un tiempo de ejecución junto con él me hizo preguntarme "¿qué es Colima?", y para ser honesto, la documentación mínima no lo hace más claro. El lema es "Tiempos de ejecución de contenedores en macOS (y Linux) con una configuración mínima", pero eso todavía no me aclara por qué lo necesito. Por lo que puedo decir, las razones principales son para usar containerd o como backend de Kubernetes (en lugar de Docker Dkestop, minikube, etc.) y quizás la razón principal para la compatibilidad con Docker es la compatibilidad con versiones anteriores.
Si bien se anuncia principalmente como una herramienta de administración de Kubernetes, Rancher Desktop también ofrece algunas funciones de administración de contenedores fuera de Kubernetes. Admite contenedores que se ejecutan con containerd o Docker y ofrece la mayoría de las mismas funciones que las otras herramientas gráficas de esta lista. Nuevamente, QEMU proporciona la VM en la que se ejecuta todo, sin opción para cambiar eso. Es una herramienta perfectamente decente y una de las alternativas más maduras, pero tiendo a encontrar que necesitaba reiniciar y restablecer la VM mucho cuando realizaba cambios, lo que se volvió un poco tedioso.
Si ya usa VMWare Fusion para ejecutar máquinas virtuales Windows y Linux, también es compatible con contenedores . Sin embargo, la función actualmente solo funciona con Mac basadas en Intel, a pesar de que el instalador aún instala la herramienta CLI y le da falsas esperanzas.
Nuevamente, si ya posee y usa Parallels Desktop para máquinas virtuales Linux y Windows, puede usarlo como backend para minikube, que está principalmente dirigido al uso de Kubernetes, pero es adyacente al contenedor, por lo que lo incluyo como una especie de opción. .
Por ahora, como colaborador individual, estoy contento con Docker Desktop y me gustan las características adicionales que ofrece para una integración más eficaz y perfecta con el sistema operativo host.
Si algo cambiara para desincentivar a personas como yo también, entonces probablemente cambiaría a Podman, quizás con Podman Desktop, dependerá del estado del proyecto en ese momento.
¿Y usted?