GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come sostituire Docker con Podman su un Mac

Nel marzo 2021, ho scritto di come ho sostituito Docker con Podman su un Mac utilizzando VirtualBox e Vagrant dopo che una vecchia versione della macchina Podman è diventata obsoleta. Quello stesso mese, una nuova versione di podman machine è stato rilasciato, il che ha praticamente reso il mio articolo obsoleto e causato un po' di confusione.

Usando la podman machine la funzionalità del comando è molto più semplice ora, come spiega Brent Baude in Come funziona Podman su Mac e altre domande frequenti sui contenitori. Mentre stavo passando dalla mia configurazione VirtualBox/Vgrant, volevo rivisitare questo argomento nel caso in cui il tuo design fosse simile al mio. Ecco alcuni suggerimenti che ho trovato passando a podman machine; si spera che condividendoli aiuterò alcune persone!

Da Vagrant a macchina podman

Suppongo che tu abbia installato podman usando Homebrew. La prima cosa da fare è ottenere l'ultima versione di Podman eseguendo:

$ brew upgrade podman

Se sei come me e desideri risultati rapidi, vai avanti ed esegui questi comandi dopo l'aggiornamento:

$ podman machine init
$ podman machine start

Quando l'ho eseguito, init il comando ha funzionato come un incantesimo, ma il start comando non era felice e me lo ha detto:

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]"

Dopo un paio di ricerche su Internet, ho trovato una raccomandazione per aggiungere la seguente riga a ~/.config/containers/containers.conf file:

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

NOTA :questo è un problema abbastanza recente e potrebbe essere risolto nelle versioni più recenti di Podman. Come puoi vedere, sto usando 3.4.1. Questa versione ha definitivamente risolto il gvproxy errore, ma è qui che la mia configurazione di Vagrant mi ha fatto inciampare. Ho eseguito nuovamente il podman machine start comando, ma non era ancora felice, dicendo che non era in grado di connettersi a causa di un failed sshClient errore. Ho deciso di guardare la mia vecchia connessione Vagrant eseguendo:

$ podman system connection list

Ho notato che la connessione Vagrant esisteva ancora come connessione predefinita. Ho cambiato rapidamente l'impostazione predefinita e rimosso la connessione Vagrant, ma ho ancora ricevuto lo stesso errore. Quindi, ho eseguito il seguente comando per ottenere più informazioni di debug:

$ 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

Dal momento che non riesco a ricordare cosa ho mangiato a colazione oggi, per non parlare di qualcosa che ho fatto mesi fa, sono tornato al mio articolo precedente per vedere se qualcosa che ho fatto potrebbe costringere Podman a usare quella chiave privata di Vagrant. Bene, abbastanza sicuro, c'era nel passaggio 6! Le variabili globali stavano ancora dicendo a Podman di utilizzare la configurazione della chiave SSH di Vagrant. Tutto quello che dovevo fare era distruggere il CONTAINER_HOST e CONTAINER_SSHKEY righe dal mio ~/.zshrc file e podman machine start ha funzionato come pubblicizzato.

Rendila un'app per macOS

Ora quella podman machine funzionava benissimo sul mio Mac, volevo essere sicuro che l'app Seals macOS che ho usato nell'articolo precedente funzionasse. In quell'articolo, ho creato uno script di shell Bash chiamato pman per avviare e interrompere rapidamente la configurazione di VirtualBox e Vagrant e ho creato un'applicazione denominata Seals per semplificare l'esecuzione dello script. Il nuovo pman lo script richiedeva un paio di modifiche per usare 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

Ho quindi provato la mia app Seals per macOS e ho ricevuto un interessante podman not found errore. Quindi, ho aperto Automator sul mio Mac, ho scelto Apri un documento esistente... e ho aperto l'app Seals.

[ Ulteriori informazioni sulla piattaforma Red Hat OpenShift Container. ] 

Potrebbe non essere necessario farlo a seconda di dove si trova il tuo eseguibile Podman. Ho creato un collegamento simbolico Podman in una directory bin locale, quindi ho dovuto giocare con la prima riga di esportazione per assicurarmi che trovasse il mio eseguibile Podman.

Dovrai aggiornare i percorsi nello screenshot sopra a dove hai salvato e chiamato lo script Bash. Una volta individuato il percorso giusto, la mia app Seals ha funzionato alla grande.

    Nel caso ti stia chiedendo come ho allegato il logo Podman alla mia app macOS, ecco la procedura. Ho trovato il logo Podman e ho creato un'immagine PNG 128x128 con GIMP da utilizzare come icona dell'applicazione con questi passaggi:

    1. Apri il PNG 128x128 in anteprima e fai clic su Modifica> Copia .
    2. Fai clic con il pulsante destro del mouse sulla nuova applicazione e fai clic su Ottieni informazioni .
    3. Seleziona l'icona in alto a sinistra e incolla il contenuto degli appunti.

    Ora puoi utilizzare Alfred o Spotlight per avviare rapidamente Podman e liberare preziosi millisecondi della tua giornata lavorativa per concentrarti sulle cose che contano... come un pranzo presto!

    Riepilogo

    Spero che questo aiuterà quelle persone che stanno cercando un modo semplice per avviare Podman su macOS o che utilizzano una configurazione Vagrant simile a quella che ho documentato. Il motivo principale per cui ho rivisitato questo argomento è che gli aggiornamenti di Podman hanno reso obsoleto il mio articolo precedente ed è molto più semplice ora utilizzare Podman su un macOS a causa della macchina Podman. Non hai più bisogno di VirtualBox e Vagrant, solo Podman! Buona containerizzazione!

    Nota del redattore:questo articolo è stato originariamente pubblicato a marzo 2021 ed è stato aggiornato.


    Docker
    1. Come installare Jenkins con Docker

    2. Come sostituire Grub con Burg?

    3. Come distribuire microservizi con Docker

    4. Come condividere le immagini Docker con altri

    5. Come sostituire MySQL con MariaDB su CentOS 6

    Come installare Sentry con Docker su Ubuntu 20.04

    Come installare Mailtrain su Ubuntu 18.04 con Docker

    Come copiare file con Docker cp nel tuo Docker Container

    Come creare un'immagine Docker personalizzata con Dockerfile

    Come distribuire CouchDB come cluster con Docker

    Come installare Docker su Mac