GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak nahradit Docker Podmanem na Macu

V březnu 2021 jsem psal o tom, jak jsem nahradil Dockera Podmanem na Macu pomocí VirtualBox a Vagrant poté, co byla stará verze stroje podman zastaralá. Ten samý měsíc byla vydána nová verze podman machine byl vydán, což do značné míry učinilo můj článek zastaralým a způsobilo trochu zmatek.

Pomocí podman machine funkce příkazu je nyní mnohem snazší, jak Brent Baude vysvětluje v části Jak Podman běží na počítačích Mac a dalších často kladených dotazech o kontejnerech. Když jsem přecházel z nastavení VirtualBox/Vagrant, chtěl jsem toto téma znovu navštívit pro případ, že je váš návrh podobný mému. Zde je několik tipů, které jsem našel při přechodu na podman machine; doufám, že jejich sdílením pomůžu některým lidem!

Od Vagranta po stroj podmanů

Budu předpokládat, že jste nainstalovali podman pomocí Homebrew. První věc, kterou musíte udělat, je získat nejnovější verzi Podman spuštěním:

$ brew upgrade podman

Pokud jste něco jako já a chcete rychlé výsledky, spusťte po upgradu tyto příkazy:

$ podman machine init
$ podman machine start

Když jsem to spustil, init příkaz fungoval jako kouzlo, ale start příkaz nebyl šťastný a řekl mi to:

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

Po několika hledáních na internetu jsem našel doporučení přidat následující řádek do ~/.config/containers/containers.conf soubor:

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

POZNÁMKA :Toto je poměrně nedávný problém a může být vyřešen v novějších verzích Podman. Jak vidíte, používám 3.4.1. Tato verze rozhodně vyřešila gvproxy chyba, ale tady mě moje nastavení Vagrant podrazilo. Znovu jsem spustil podman machine start příkaz, ale stále nebyl spokojený a říkal, že se nelze připojit kvůli failed sshClient chyba. Rozhodl jsem se podívat na své staré připojení Vagrant spuštěním:

$ podman system connection list

Všiml jsem si, že připojení Vagrant stále existuje jako výchozí připojení. Rychle jsem změnil výchozí nastavení a odstranil jsem připojení Vagrant, ale stále jsem dostal stejnou chybu. Spustil jsem tedy následující příkaz, abych získal další informace o ladě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

Protože si nepamatuji, co jsem měl dnes k snídani, natož něco, co jsem udělal před měsíci, vrátil jsem se ke svému předchozímu článku, abych zjistil, jestli by něco, co jsem udělal, nemohlo přinutit Podmana použít soukromý klíč Vagrant. No, jistě, tam to bylo v kroku 6! Globální proměnné stále říkaly Podmanovi, aby použil nastavení klíče Vagrant SSH. Vše, co jsem potřeboval, bylo odpálit CONTAINER_HOST a CONTAINER_SSHKEY řádky z mého ~/.zshrc soubor a podman machine start fungovalo tak, jak bylo inzerováno.

Udělejte z toho aplikaci pro macOS

Teď ten podman machine na mém Macu fungoval skvěle, chtěl jsem si být jistý, že aplikace Seals pro macOS, kterou jsem použil v předchozím článku, funguje. V tomto článku jsem vytvořil skript shellu Bash s názvem pman pro rychlé spuštění a zastavení mého nastavení VirtualBoxu a Vagrantu a vytvořil jsem aplikaci s názvem Seals, aby se skript snáze spouštěl. Nový pman skript potřeboval několik úprav, aby mohl používat 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

Poté jsem vyzkoušel aplikaci Seals pro macOS a objevil se zajímavý podman not found chyba. Otevřel jsem tedy Automator na svém Macu a vybral Otevřít existující dokument... a otevřeli aplikaci Seals.

[ Další informace o kontejnerové platformě Red Hat OpenShift. ] 

Možná to nebudete muset dělat v závislosti na tom, kde se nachází spustitelný soubor Podman. Vytvořil jsem symbolický odkaz Podman v místním adresáři bin, takže jsem si musel pohrát s prvním exportním řádkem, abych se ujistil, že najde můj spustitelný soubor Podman.

Budete muset aktualizovat cesty na snímku obrazovky výše na místo, kde jste uložili a pojmenovali skript Bash. Jakmile jsem našel správnou cestu, moje aplikace Seals fungovala skvěle.

    V případě, že vás zajímá, jak jsem připojil logo Podman ke své aplikaci macOS, zde je postup. Našel jsem logo Podman a pomocí GIMPu jsem vytvořil obrázek PNG o velikosti 128 x 128, který lze použít jako ikonu aplikace, pomocí těchto kroků:

    1. Otevřete 128x128 PNG v náhledu a klikněte na Upravit> Kopírovat .
    2. Klikněte pravým tlačítkem na novou aplikaci a klikněte na Získat informace .
    3. Vyberte ikonu vlevo nahoře a vložte obsah schránky.

    Nyní můžete použít Alfred nebo Spotlight k rychlému spuštění Podmana a uvolnit drahocenné milisekundy vašeho pracovního dne, abyste se mohli soustředit na věci, na kterých vám záleží... jako brzký oběd!

    Shrnutí

    Doufám, že to pomůže těm lidem, kteří buď hledají snadný způsob, jak spustit Podman na macOS, nebo používají nastavení Vagrant podobné tomu, které jsem zdokumentoval. Hlavním důvodem, proč jsem znovu navštívil toto téma, bylo to, že aktualizace Podman způsobily, že můj předchozí článek je zastaralý, a nyní je mnohem snazší používat Podman na macOS kvůli počítači podman. Už nepotřebujete VirtualBox a Vagrant, stačí Podman! Šťastné balení kontejnerů!

    Poznámka redakce:Tento článek byl původně publikován v březnu 2021 a byl aktualizován.


    Docker
    1. Jak nainstalovat Jenkins pomocí Docker

    2. Jak nahradit Grub Burgem?

    3. Jak nasadit mikroslužby s Dockerem

    1. Jak nasadit aplikace s Rancherem

    2. Jak nasadit kontejner nginx s Dockerem na Linode

    3. Jak sdílet obrázky Docker s ostatními

    1. Jak vytvořit Docker Image pomocí Dockerfile

    2. Jak nainstalovat ONLYOFFICE 8.9.0 s Dockerem na Ubuntu

    3. Jak nahradit MySQL za MariaDB na CentOS 6