GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment remplacer Docker par Podman sur un Mac, revisité

En mars 2021, j'ai écrit sur la façon dont j'ai remplacé Docker par Podman sur un Mac en utilisant VirtualBox et Vagrant après qu'une ancienne version de la machine podman soit devenue obsolète. Ce même mois, une nouvelle version de podman machine a été publié, ce qui a pratiquement rendu mon article obsolète et a causé un peu de confusion.

Utilisation de la podman machine la fonctionnalité de la commande est tellement plus facile maintenant, comme l'explique Brent Baude dans Comment Podman s'exécute sur Mac et d'autres FAQ sur les conteneurs. Comme je quittais ma configuration VirtualBox/Vagrant, je voulais revenir sur ce sujet au cas où votre conception serait similaire à la mienne. Voici quelques conseils que j'ai trouvés lors du passage à podman machine; j'espère qu'en les partageant, j'aiderai certaines personnes !

De Vagrant à la machine podman

Je vais supposer que vous avez installé podman en utilisant Homebrew. La première chose à faire est d'obtenir la dernière version de Podman en exécutant :

$ brew upgrade podman

Si vous êtes comme moi et que vous voulez des résultats rapides, lancez ces commandes après la mise à jour :

$ podman machine init
$ podman machine start

Quand j'ai exécuté ceci, le init La commande a fonctionné comme un charme, mais le start la commande n'était pas contente et me l'a dit :

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

Après quelques recherches sur Internet, j'ai trouvé une recommandation pour ajouter la ligne suivante au ~/.config/containers/containers.conf fichier :

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

REMARQUE :Il s'agit d'un problème assez récent, et il peut être résolu dans les nouvelles versions de Podman. Comme vous pouvez le voir, j'utilise 3.4.1. Cette version a définitivement résolu le gvproxy erreur, mais voici où ma configuration Vagrant m'a fait trébucher. J'ai relancé le podman machine start commande, mais elle n'était toujours pas satisfaite, indiquant qu'elle était incapable de se connecter en raison d'un failed sshClient Erreur. J'ai décidé de regarder mon ancienne connexion Vagrant en exécutant :

$ podman system connection list

J'ai remarqué que la connexion Vagrant existait toujours en tant que connexion par défaut. J'ai rapidement changé la valeur par défaut et supprimé la connexion Vagrant, mais j'ai toujours la même erreur. J'ai donc exécuté la commande suivante pour obtenir plus d'informations de débogage :

$ 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

Comme je ne me souviens pas de ce que j'ai pris au petit-déjeuner aujourd'hui, sans parler de quelque chose que j'ai fait il y a des mois, je suis retourné à mon article précédent pour voir si quelque chose que j'ai fait pourrait forcer Podman à utiliser cette clé privée Vagrant. Eh bien, bien sûr, c'était à l'étape 6! Les variables globales disaient toujours à Podman d'utiliser la configuration de la clé Vagrant SSH. Tout ce que j'avais à faire était de détruire le CONTAINER_HOST et CONTAINER_SSHKEY lignes de mon ~/.zshrc fichier et podman machine start a fonctionné comme annoncé.

Faites-en une application macOS

Maintenant que la podman machine fonctionnait très bien sur mon Mac, je voulais être sûr que l'application Seals macOS que j'ai utilisée dans l'article précédent fonctionnait. Dans cet article, j'ai créé un script shell Bash appelé pman pour démarrer et arrêter rapidement ma configuration VirtualBox et Vagrant, et j'ai créé une application nommée Seals pour faciliter l'exécution du script. Le nouveau pman le script avait besoin de quelques ajustements pour utiliser 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

J'ai ensuite essayé mon application Seals macOS et j'ai obtenu un intéressant podman not found Erreur. J'ai donc ouvert Automator sur mon Mac, choisi Ouvrir un document existant... , et a ouvert l'application Seals.

[ En savoir plus sur la plate-forme de conteneurs Red Hat OpenShift. ] 

Vous n'aurez peut-être pas besoin de le faire en fonction de l'emplacement de votre exécutable Podman. J'ai créé un lien symbolique Podman dans un répertoire bin local, j'ai donc dû jouer avec la première ligne d'exportation pour m'assurer qu'elle trouvait mon exécutable Podman.

Vous devrez mettre à jour les chemins dans la capture d'écran ci-dessus vers l'endroit où vous avez enregistré et nommé le script Bash. Une fois que j'ai trouvé le bon chemin, mon application Seals a très bien fonctionné.

    Au cas où vous vous demanderiez comment j'ai attaché le logo Podman à mon application macOS, voici le processus. J'ai trouvé le logo Podman et créé une image PNG 128x128 avec GIMP à utiliser comme icône de l'application en suivant ces étapes :

    1. Ouvrez le PNG 128 x 128 dans l'aperçu et cliquez sur Modifier > Copier .
    2. Cliquez avec le bouton droit sur la nouvelle application, puis cliquez sur Obtenir des informations .
    3. Sélectionnez l'icône en haut à gauche et collez le contenu du presse-papiers.

    Vous pouvez désormais utiliser Alfred ou Spotlight pour lancer rapidement Podman et libérer de précieuses millisecondes de votre journée de travail pour vous concentrer sur les choses qui comptent... comme un déjeuner matinal !

    Résumé

    J'espère que cela aidera les personnes qui recherchent un moyen simple de lancer Podman sur macOS ou qui utilisent une configuration Vagrant similaire à celle que j'ai documentée. La principale raison pour laquelle j'ai revisité ce sujet était que les mises à jour de Podman rendaient mon article précédent obsolète, et il est tellement plus facile maintenant d'utiliser Podman sur un macOS à cause de la machine podman. Vous n'avez plus besoin de VirtualBox et de Vagrant, juste de Podman ! Bonne conteneurisation !!


    Docker
    1. Comment installer Jenkins avec Docker

    2. Comment déployer des microservices avec Docker

    3. Comment déployer des applications avec Rancher

    4. Comment déployer un conteneur nginx avec Docker sur Linode

    5. Comment remplacer MySQL par MariaDB sur CentOS 6

    Comment installer Sentry avec Docker sur Ubuntu 20.04

    Comment installer Mailtrain sur Ubuntu 18.04 avec Docker

    Comment copier des fichiers avec Docker cp dans votre conteneur Docker

    Comment créer une image Docker personnalisée avec Dockerfile

    Comment déployer CouchDB en tant que cluster avec Docker

    Comment installer Docker sur Mac