GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So ersetzen Sie Docker durch Podman auf einem Mac, überarbeitet

Bereits im März 2021 schrieb ich darüber, wie ich Docker durch Podman auf einem Mac mit VirtualBox und Vagrant ersetzt habe, nachdem eine alte Version von Podman Machine veraltet war. Noch im selben Monat eine neue Version der podman machine wurde veröffentlicht, was meinen Artikel ziemlich obsolet machte und ein wenig Verwirrung stiftete.

Verwenden der podman machine Die Funktionalität des Befehls ist jetzt so viel einfacher, wie Brent Baude in How Podman running on Macs and other container FAQs erklärt. Da ich von meinem VirtualBox/Vagrant-Setup umgezogen bin, wollte ich dieses Thema noch einmal aufgreifen, falls Ihr Design meinem ähnelt. Hier sind einige Tipps, die ich gefunden habe, als ich zu podman machine gewechselt bin; hoffentlich helfe ich einigen Leuten, indem ich sie teile!

Vom Vagrant zur Podman-Maschine

Ich gehe davon aus, dass Sie Podman mit Homebrew installiert haben. Als Erstes müssen Sie die neueste Version von Podman abrufen, indem Sie Folgendes ausführen:

$ brew upgrade podman

Wenn Sie so etwas wie ich sind und schnell Ergebnisse erzielen möchten, führen Sie diese Befehle nach dem Upgrade aus:

$ podman machine init
$ podman machine start

Als ich dies ausgeführt habe, wurde die init Befehl funktionierte wie ein Zauber, aber der start Befehl war nicht glücklich und sagte es mir:

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

Nach ein paar Internetrecherchen fand ich eine Empfehlung, die folgende Zeile zur ~/.config/containers/containers.conf hinzuzufügen Datei:

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

HINWEIS :Dies ist ein relativ neues Problem, das möglicherweise in neueren Podman-Versionen behoben wird. Wie Sie sehen können, verwende ich 3.4.1. Diese Version löste definitiv den gvproxy Fehler, aber hier hat mich mein Vagrant-Setup gestolpert. Ich habe den podman machine start erneut ausgeführt Befehl, aber es war immer noch nicht glücklich und sagte, dass es aufgrund eines failed sshClient keine Verbindung herstellen konnte Error. Ich beschloss, mir meine alte Vagrant-Verbindung anzusehen, indem ich Folgendes ausführte:

$ podman system connection list

Mir ist aufgefallen, dass die Vagrant-Verbindung immer noch als Standardverbindung existiert. Ich habe schnell die Standardeinstellung geändert und die Vagrant-Verbindung entfernt, aber ich habe immer noch den gleichen Fehler. Also habe ich den folgenden Befehl ausgeführt, um weitere Debug-Informationen zu erhalten:

$ 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

Da ich mich nicht erinnern kann, was ich heute zum Frühstück gegessen habe, ganz zu schweigen von etwas, das ich vor Monaten getan habe, bin ich zu meinem vorherigen Artikel zurückgegangen, um zu sehen, ob irgendetwas, was ich getan habe, Podman dazu zwingen könnte, diesen privaten Vagrant-Schlüssel zu verwenden. Nun, sicher genug, da war es in Schritt 6! Globale Variablen wiesen Podman immer noch an, das Vagrant-SSH-Schlüssel-Setup zu verwenden. Alles, was ich tun musste, war, den CONTAINER_HOST zu zerstören und CONTAINER_SSHKEY Zeilen aus meinem ~/.zshrc Datei und podman machine start hat wie angekündigt funktioniert.

Machen Sie daraus eine macOS-App

Nun diese podman machine auf meinem Mac hervorragend funktionierte, wollte ich sicher sein, dass die Seals macOS-App, die ich im vorherigen Artikel verwendet habe, funktionierte. In diesem Artikel habe ich ein Bash-Shell-Skript namens pman erstellt um mein VirtualBox- und Vagrant-Setup schnell zu starten und zu stoppen, und ich habe eine Anwendung namens Seals erstellt, um die Ausführung des Skripts zu vereinfachen. Der neue pman Das Skript benötigte ein paar Anpassungen, um podman machine zu verwenden :

#!/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

Ich habe dann meine Seals macOS-App ausprobiert und einen interessanten podman not found erhalten Error. Also öffnete ich Automator auf meinem Mac und wählte Vorhandenes Dokument öffnen... , und öffnete die Seals-App.

[ Erfahren Sie mehr über die Red Hat OpenShift Container Platform. ] 

Je nachdem, wo sich Ihre ausführbare Podman-Datei befindet, müssen Sie dies möglicherweise nicht tun. Ich habe einen Podman-Symlink in einem lokalen bin-Verzeichnis erstellt, also musste ich mit der ersten Exportzeile herumspielen, um sicherzustellen, dass sie meine ausführbare Podman-Datei findet.

Sie müssen die Pfade im obigen Screenshot dahingehend aktualisieren, wo Sie das Bash-Skript gespeichert und benannt haben. Sobald ich den richtigen Pfad gefunden hatte, funktionierte meine Seals-App hervorragend.

    Falls Sie sich fragen, wie ich das Podman-Logo an meine macOS-App angehängt habe, hier ist der Prozess. Ich habe das Podman-Logo gefunden und mit GIMP ein 128x128-PNG-Bild erstellt, das mit diesen Schritten als Anwendungssymbol verwendet werden kann:

    1. Öffnen Sie das PNG-Format 128 x 128 in der Vorschau und klicken Sie auf Bearbeiten> Kopieren .
    2. Klicken Sie mit der rechten Maustaste auf die neue Anwendung und klicken Sie auf Informationen erhalten .
    3. Wählen Sie das Symbol oben links und fügen Sie den Inhalt der Zwischenablage ein.

    Jetzt können Sie Alfred oder Spotlight verwenden, um Podman schnell zu starten und wertvolle Millisekunden Ihres Arbeitstages freizusetzen, um sich auf die wichtigen Dinge zu konzentrieren … wie ein frühes Mittagessen!

    Zusammenfassung

    Ich hoffe, dies wird den Leuten helfen, die entweder nach einer einfachen Möglichkeit suchen, Podman unter macOS zu starten, oder ein Vagrant-Setup verwenden, das dem von mir dokumentierten ähnelt. Der Hauptgrund, warum ich dieses Thema erneut aufgegriffen habe, war, dass Podman-Updates meinen vorherigen Artikel überflüssig gemacht haben und es jetzt aufgrund der Podman-Maschine so viel einfacher ist, Podman auf einem macOS zu verwenden. Sie brauchen VirtualBox und Vagrant nicht mehr, nur noch Podman! Viel Spaß beim Containerisieren!!


    Docker
    1. So installieren Sie Jenkins mit Docker

    2. So stellen Sie Microservices mit Docker bereit

    3. So stellen Sie Apps mit Rancher bereit

    4. So stellen Sie einen Nginx-Container mit Docker auf Linode bereit

    5. So teilen Sie Docker-Images mit anderen

    So installieren Sie Sentry mit Docker unter Ubuntu 20.04

    So installieren Sie Mailtrain auf Ubuntu 18.04 mit Docker

    So kopieren Sie Dateien mit Docker cp in Ihren Docker-Container

    So erstellen Sie ein benutzerdefiniertes Docker-Image mit Dockerfile

    So stellen Sie CouchDB als Cluster mit Docker bereit

    So installieren Sie Docker auf dem Mac