Tutoriales

Cómo reemplazar Docker con Podman en Mac

En marzo, escribí un artículo sobre la sustitución de Docker y Podman por VirtualBox y Vagrant en versiones anteriores de Mac. máquina de podcasts Obsoleto.Justo el mismo mes, una nueva versión de podman machine Publicado, lo que casi hizo que mi artículo quedara obsoleto y causó un poco confuso.

usar podman machine La funcionalidad del comando es mucho más simple ahora, como explica Brent Baude en How Podman Runs on Mac and Other Container FAQs. Como dejo mi configuración de VirtualBox/Vagrant, quiero volver a visitar este tema en caso de que su diseño sea similar al mío.Estos son algunos consejos que encontré mientras me mudaba podman machine; ¡Espero que al compartirlos ayude a algunas personas!

De vagabundo a máquina podman

Supongo que tienes podman instalado usar cerveza caseraLo 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, continúa y ejecuta los siguientes comandos después de la actualización:

$ podman machine init
$ podman machine start

Cuando ejecuto esto, init comando funciona a las mil maravillas, pero start Comando se molestó y me 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 algunas búsquedas en Internet, encontré la sugerencia de agregar la siguiente línea a ~/.config/containers/containers.conf documento:

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

notas: Este es un problema bastante nuevo y puede solucionarse en las versiones más recientes de Podman. Como puede ver, estoy usando 3.4.1.Esta versión definitivamente lo resuelve. gvproxy Incorrecto, pero aquí es donde mi configuración de Vagrant me está haciendo tropezar.lo ejecuté de nuevo podman machine start comando, pero todavía no está contento, diciendo que no puede conectarse debido a un failed sshClient Error. Decidí ver mis antiguas conexiones de Vagrant ejecutando:

$ podman system connection list

Noté que la conexión Vagrant todavía existe como conexión predeterminada. Cambié rápidamente la configuración predeterminada y eliminé la conexión Vagrant, pero sigo teniendo el mismo error. Así que ejecuto los siguientes comandos 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 lo que hice hace unos meses, volví a mi publicación anterior para ver si algo de lo que hice obligaría a Podman a usar esa clave privada de Vagrant. Bueno, efectivamente, ¡está en el paso 6! La variable global todavía le dice a Podman que use la configuración de la clave Vagrant SSH.Todo lo que necesito hacer es bombardear CONTENEDOR_HOST y CONTENEDOR_SSHKEY mis lineas ~/.zshrc archivo, y podman machine start Funciona como se anuncia.

Conviértalo en una aplicación de macOS

ahora podman machine Funciona bien en mi Mac y quiero asegurarme de que la aplicación Seals macOS que usé en la última publicación funcione.En ese artículo, creé un archivo llamado pman Para iniciar y detener rápidamente mi configuración de VirtualBox y Vagrant, creé una aplicación llamada Seals para facilitar la ejecución de los scripts.nuevo pman El script necesita algunos ajustes para funcionar. 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 macOS y obtuve una interesante podman not found Error.Entonces, abrí Automator en mi Mac, seleccioné Abrir un documento existente…luego abra la aplicación Sellos.

[ Learn more about the Red Hat OpenShift Container Platform. ]

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

Modifique la aplicación Seals para buscar el ejecutable Podman. (Dave Müller, CC BY-SA 4.0)

Deberá actualizar la ruta en la captura de pantalla anterior a la ubicación donde guardó y nombró el script Bash. Una vez que encuentro la ruta correcta, mi aplicación Seals funciona bien.

    Ventana Obtener información de los sellos. (Dave Müller, CC BY-SA 4.0)

    Si se pregunta cómo adjunté el logotipo de Podman a mi aplicación macOS, este es el proceso.Lo encontré logotipo de bodman y usé GIMP para crear una imagen PNG de 128×128 para usar como ícono de la aplicación con los siguientes pasos:

    1. Abra un PNG de 128×128 en Vista previa y haga clic en Editar > Copiar.
    2. Haga clic derecho en la nueva aplicación y haga clic en consiguiendo información.
    3. Seleccione el icono en la esquina superior izquierda y pegue el contenido del portapapeles.

    Ahora puedes usar Alfredo O Spotlight para iniciar rápidamente Podman y liberar valiosos días de trabajo para concentrarse en lo que importa… ¡como el brunch!

    Caza focas con Alfred. (Dave Müller, CC BY-SA 4.0)

    generalizar

    Espero que esto ayude a aquellos 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 reviso este tema es que la actualización de Podman hizo que mi artículo anterior quedara obsoleto y ahora es mucho más fácil usar Podman en 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.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba