GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

MacでDockerをPodmanに置き換える方法

2021年3月に、古いバージョンのpodmanマシンが非推奨になった後、VirtualBoxとVagrantを使用してMacでDockerをPodmanに置き換える方法について書きました。その同じ月、新しいバージョンのpodman machine がリリースされたため、私の記事はほとんど時代遅れになり、少し混乱を招きました。

podman machineの使用 Brent BaudeがMacでのPodmanの実行方法やその他のコンテナに関するFAQで説明しているように、コマンドの機能は非常に簡単になりました。 VirtualBox / Vagrantのセットアップから移行していたので、あなたのデザインが私のものと似ている場合に備えて、このトピックを再検討したいと思いました。 podman machineに移行するときに見つけたヒントを次に示します。;うまくいけば、それらを共有することによって、私は何人かの人々を助けるでしょう!

Vagrantからpodmanマシンへ

Homebrewを使用してpodmanをインストールしたと仮定します。最初に行うことは、次のコマンドを実行して最新バージョンのPodmanを入手することです。

$ brew upgrade podman

私のような人で、結果を早く求めている場合は、アップグレード後に次のコマンドを実行してください。

$ podman machine init
$ podman machine start

これを実行すると、init コマンドは魅力のように機能しましたが、start コマンドは満足していなかったので、そう言ってくれました:

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

インターネットで数回検索した後、~/.config/containers/containers.confに次の行を追加することをお勧めします。 ファイル:

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

:これはかなり最近の問題であり、新しいPodmanリリースで解決される可能性があります。ご覧のとおり、私は3.4.1を使用しています。このバージョンは間違いなくgvproxyを解決しました エラーが発生しましたが、Vagrantのセットアップでつまずいたところです。 podman machine startを再実行しました コマンドが、failed sshClientのために接続できなかったと言って、それでも満足できませんでした エラー。次のコマンドを実行して、古いVagrant接続を確認することにしました:

$ podman system connection list

Vagrant接続がデフォルト接続としてまだ存在していることに気づきました。すぐにデフォルトを変更してVagrant接続を削除しましたが、それでも同じエラーが発生しました。そこで、次のコマンドを実行して、より多くのデバッグ情報を取得しました。

$ 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

今日の朝食に何を食べたか思い出せないので、数か月前にしたことは言うまでもなく、前の記事に戻って、PodmanにそのVagrant秘密鍵の使用を強制する可能性があるかどうかを確認しました。まあ、確かに、それはステップ6にありました!グローバル変数はまだPodmanにVagrantSSHキー設定を使用するように指示していました。私がする必要があるのは、 CONTAINER_HOSTを核攻撃することだけでした。 およびCONTAINER_SSHKEY 私の~/.zshrcからの行 ファイル、およびpodman machine start 宣伝どおりに機能しました。

macOSアプリにする

これで、podman machine 私のMacでうまく機能していたので、前の記事で使用したSealsmacOSアプリが機能することを確認したかったのです。その記事では、pmanというBashシェルスクリプトを作成しました。 VirtualBoxとVagrantのセットアップをすばやく開始および停止するために、スクリプトを実行しやすくするために、Sealsという名前のアプリケーションを作成しました。新しいpman スクリプトでは、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

次に、Seals macOSアプリを試してみたところ、興味深いpodman not foundが見つかりました。 エラー。そこで、MacでAutomatorを開き、既存のドキュメントを開く...を選択しました。 、そしてシールアプリを開きました。

[Red Hat OpenShiftContainerPlatformの詳細をご覧ください。 ]

Podman実行可能ファイルが配置されている場所によっては、これを行う必要がない場合があります。ローカルのbinディレクトリにPodmanシンボリックリンクを作成したので、最初のエクスポート行を試して、Podmanの実行可能ファイルが見つかるようにする必要がありました。

上のスクリーンショットのパスを、Bashスクリプトを保存して名前を付けた場所に更新する必要があります。パスが正しくなると、Sealsアプリはうまく機能しました。

ポッドマンのロゴをmacOSアプリにどのように添付したか疑問に思われる方のために、プロセスは次のとおりです。 Podmanのロゴを見つけ、GIMPを使用して128x128のPNG画像を作成し、次の手順でアプリケーションアイコンとして使用しました。

  1. プレビューで128x128PNGを開き、編集>コピーをクリックします 。
  2. 新しいアプリケーションを右クリックし、[情報を見る]をクリックします 。
  3. 左上のアイコンを選択し、クリップボードの内容を貼り付けます。

これで、AlfredまたはSpotlightを使用して、Podmanをすばやく起動し、仕事の貴重なミリ秒を解放して、早めの昼食など、重要なことに集中できます。

概要

これが、macOSでPodmanを起動する簡単な方法を探している人、または私が文書化したものと同様のVagrantセットアップを使用している人に役立つことを願っています。私がこのトピックを再検討した主な理由は、Podmanの更新により以前の記事が廃止され、podmanマシンのおかげでmacOSでPodmanを使用するのがはるかに簡単になったためです。 VirtualBoxとVagrantは不要になり、Podmanだけが必要になります。コンテナ化をお楽しみください!

編集者注:この記事は元々2021年3月に公開され、更新されました。


Docker
  1. GrubをBurgに置き換える方法は?

  2. Dockerを使用してマイクロサービスをデプロイする方法

  3. ランチャーでアプリをデプロイする方法

  1. LinodeにDockerを使用してnginxコンテナをデプロイする方法

  2. Dockerイメージを他の人と共有する方法

  3. CentOS6でMySQLをMariaDBに置き換える方法

  1. Dockerfileを使用してDockerイメージを作成する方法

  2. UbuntuでDockerを使用してONLYOFFICE8.9.0をインストールする方法

  3. Dockerを使用してJenkinsをインストールする方法