GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo reemplazar Docker con Podman en una Mac

En marzo de 2021, escribí sobre cómo reemplacé Docker con Podman en una Mac usando VirtualBox y Vagrant después de que una versión anterior de la máquina podman quedara obsoleta. Ese mismo mes, una nueva versión de podman machine fue publicado, lo que prácticamente dejó mi artículo obsoleto y causó un poco de confusión.

Usando la podman machine la funcionalidad del comando es mucho más fácil ahora, como explica Brent Baude en Cómo se ejecuta Podman en Mac y otras preguntas frecuentes sobre contenedores. Mientras me mudaba de mi configuración de VirtualBox/Vagrant, quería volver a visitar este tema en caso de que su diseño sea similar al mío. Estos son algunos consejos que encontré cuando me mudé a podman machine; con suerte, al compartirlos, ¡ayudaré a algunas personas!

De vagabundo a máquina podman

Voy a suponer que instaló podman usando Homebrew. Lo primero que debe hacer es obtener la última versión de Podman ejecutando:

$ brew upgrade podman

Si eres como yo y quieres resultados rápidos, sigue adelante y ejecuta estos comandos después de la actualización:

$ podman machine init
$ podman machine start

Cuando ejecuté esto, el init El comando funcionó a las mil maravillas, pero el start el comando no estaba contento y me lo dijo:

Error: unable to start host networking: "could not find \"gvproxy\" in one of [/usr/local/opt/podman/libexec /opt/homebrew/bin /opt/homebrew/opt/podman/libexec /usr/local/bin /usr/local/libexec/podman /usr/local/lib/podman /usr/libexec/podman /usr/lib/podman]"

Después de un par de búsquedas en Internet, encontré una recomendación para agregar la siguiente línea a ~/.config/containers/containers.conf archivo:

helper_binaries_dir=["/usr/local/Cellar/podman/3.4.1/bin","/usr/local/Cellar/podman/3.4.1/libexec"]

NOTA :este es un problema bastante reciente y es posible que se resuelva en las versiones más recientes de Podman. Como puede ver, estoy usando 3.4.1. Esta versión definitivamente resolvió el gvproxy error, pero aquí es donde mi configuración de Vagrant me hizo tropezar. Volví a ejecutar podman machine start comando, pero aún no estaba contento, diciendo que no podía conectarse debido a un failed sshClient error. Decidí mirar mi antigua conexión de Vagrant ejecutando:

$ podman system connection list

Noté que la conexión Vagrant todavía existía como la conexión predeterminada. Rápidamente cambié el valor predeterminado y eliminé la conexión de Vagrant, pero sigo teniendo el mismo error. Entonces, ejecuté el siguiente comando para obtener más información de depuración:

$ podman --log-level=debug ps
INFO[0000] podman filtering at log level debug
DEBU[0000] Called ps.PersistentPreRunE(podman --log-level=debug ps)
DEBU[0000] SSH Ident Key "/Users/dmeurer/Dev/images/podman/.vagrant/machines/default/virtualbox/private_key" SHA256:EhLJssA0acBO7LQVx8UrHzQPeVXB2gwn+a+wXdOaCKY ssh-rsa
DEBU[0000] Found SSH_AUTH_SOCK "/private/tmp/com.apple.launchd.b6hyl78H5X/Listeners", ssh-agent signer(s) enabled
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM

Error: unable to connect to Podman. failed to create sshClient: Connection to bastion host (ssh://[email protected]:2222/run/podman/podman.sock) failed.: dial tcp 127.0.0.1:2222: connect: connection refused

Como no puedo recordar lo que desayuné hoy, y mucho menos algo que hice hace meses, volví a mi artículo anterior para ver si algo de lo que hice podría obligar a Podman a usar esa clave privada de Vagrant. Bueno, efectivamente, ¡ahí estaba en el paso 6! Las variables globales todavía le decían a Podman que usara la configuración de la clave Vagrant SSH. Todo lo que tenía que hacer era destruir el CONTAINER_HOST y CONTAINER_SSHKEY líneas de mi ~/.zshrc archivo y podman machine start funcionó como se anuncia.

Conviértalo en una aplicación de macOS

Ahora esa podman machine funcionaba muy bien en mi Mac, quería asegurarme de que la aplicación Seals macOS que usé en el artículo anterior funcionaba. En ese artículo, creé un script de shell Bash llamado pman para iniciar y detener mi configuración de VirtualBox y Vagrant rápidamente, y creé una aplicación llamada Seals para facilitar la ejecución del script. El nuevo pman script necesitaba un par de ajustes para usar podman machine :

#!/bin/bash

ACTION=$1

case $ACTION in
  "down")
    echo "Shutting down podman machine"
    podman machine stop
    ;;

  "up")
    echo "STARTING podman machine"
    podman machine start
    ;;

  "init")
    echo "CREATING a new podman machine"
    podman machine init
    ;;
esac

Luego probé mi aplicación Seals para macOS y obtuve un interesante podman not found error. Entonces, abrí Automator en mi Mac, elegí Abrir un documento existente... y abrió la aplicación Seals.

[ Obtenga más información sobre la plataforma de contenedores Red Hat OpenShift. ] 

Es posible que no necesite hacer esto dependiendo de dónde se encuentre el ejecutable de Podman. Creé un enlace simbólico de Podman en un directorio bin local, así que tuve que jugar con la primera línea de exportación para asegurarme de que encontrara mi ejecutable de Podman.

Deberá actualizar las rutas en la captura de pantalla anterior a donde guardó y nombró el script Bash. Una vez que conseguí el camino correcto, mi aplicación Seals funcionó muy bien.

    En caso de que se pregunte cómo adjunté el logotipo de Podman a mi aplicación macOS, este es el proceso. Encontré el logotipo de Podman y creé una imagen PNG de 128x128 con GIMP para usar como ícono de la aplicación con estos pasos:

    1. Abra el PNG de 128 x 128 en vista previa y haga clic en Editar> Copiar .
    2. Haga clic derecho en la nueva aplicación y haga clic en Obtener información .
    3. Seleccione el icono en la parte superior izquierda y pegue el contenido del portapapeles.

    Ahora puede usar Alfred o Spotlight para iniciar rápidamente Podman y liberar valiosos milisegundos de su jornada laboral para concentrarse en las cosas que importan... ¡como un almuerzo temprano!

    Resumen

    Espero que esto ayude a las personas que buscan una manera fácil de iniciar Podman en macOS o que usan una configuración de Vagrant similar a la que documenté. La razón principal por la que revisé este tema fue que las actualizaciones de Podman hicieron obsoleto mi artículo anterior, y ahora es mucho más fácil usar Podman en un macOS gracias a la máquina podman. Ya no necesita VirtualBox y Vagrant, ¡solo Podman! ¡Feliz contenedorización!

    Nota del editor:este artículo se publicó originalmente en marzo de 2021 y se ha actualizado.


    Docker
    1. Cómo instalar Jenkins con Docker

    2. ¿Cómo reemplazar Grub con Burg?

    3. Cómo implementar microservicios con Docker

    4. Cómo implementar un contenedor nginx con Docker en Linode

    5. Cómo compartir imágenes de Docker con otros

    Cómo instalar Sentry con Docker en Ubuntu 20.04

    Cómo instalar Mailtrain en Ubuntu 18.04 con Docker

    Cómo copiar archivos con Docker cp a su Docker Container

    Cómo crear una imagen Docker personalizada con Dockerfile

    Cómo implementar CouchDB como un clúster con Docker

    Cómo instalar Docker en Mac