[Podman]Podmanをコマンドでインストールする(Mac,2024)

PodmanをmacOSへコマンドでインストールする。意外とインストールは簡単なので、動作確認まで記載する。

関連記事

環境

macOS Ventura 13.3.1 (Chip: Apple M1)

インストール方法

以下の公式マニュアルに沿って実施する。

Podman Installation Instructions

Terminalを開く。

基本的に、brewコマンドでインストールするのみ。

インストールするコマンドは以下。(※ただし、公式マニュアルによるとコマンドによるインストールは推奨ではない。)

brew install podman

実行すると以下のように出力される。

 $ brew install podman
Running `brew update --preinstall`...
To restore the stashed changes to /opt/homebrew/Library/Taps/homebrew/homebrew-core, run:
  cd /opt/homebrew/Library/Taps/homebrew/homebrew-core && git stash pop
==> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:ce5c135bf98da783bf5964e89aab587e3341c8adc379f36ace17ae7881f53e8c
#################################################################### 100.0%
==> Pouring portable-ruby-3.3.4_1.arm64_big_sur.bottle.tar.gz
==> Homebrew collects anonymous analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics have been recorded yet (nor will be during this `brew` run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating
  https://github.com/Homebrew/brew#donations

Installing from the API is now the default behaviour!
You can save space and time by running:
  brew untap homebrew/core
==> Downloading https://formulae.brew.sh/api/formula.jws.json
#################################################################### 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
#################################################################### 100.0%
==> Downloading https://formulae.brew.sh/api/formula_tap_migrations.jws.jso
#################################################################### 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/podman/manifests/5.2.2
#################################################################### 100.0%
==> Fetching podman
==> Downloading https://ghcr.io/v2/homebrew/core/podman/blobs/sha256:c52d8f
#################################################################### 100.0%
==> Pouring podman--5.2.2.arm64_ventura.bottle.tar.gz
==> Caveats
        In order to run containers locally, podman depends on a Linux kernel.
        One can be started manually using `podman machine` from this package.
        To start a podman VM automatically at login, also install the cask
        "podman-desktop".

zsh completions have been installed to:
  /opt/homebrew/share/zsh/site-functions
==> Summary
🍺  /opt/homebrew/Cellar/podman/5.2.2: 201 files, 76.2MB
==> Running `brew cleanup podman`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
 $

セットアップ

podmanでは、Linux実行環境を担うPodman Machineを作成する必要がある。

以下のコマンドでPodman Machineを作成する。

podman machine init

Podman Machineを起動させる。

podman machine start

Podman Machineが作成され、起動していることを以下で確認する。

podman machine ps

以下のように出力され、Podman Machineの名前が”podman-machine-default”で、起動状態(machinestate=Running)であることがわかる。

 $ podman machine info  
host:
    arch: arm64
    currentmachine: podman-machine-default
    defaultmachine: podman-machine-default
    eventsdir: /var/folders/f4/y27nzgxx5tj5z47wlnhzmstw0000gp/T/storage-run-502/podman
    machineconfigdir: /Users/username/.config/containers/podman/machine/applehv
    machineimagedir: /Users/username/.local/share/containers/podman/machine/applehv
    machinestate: Running
    numberofmachines: 1
    os: darwin
    vmtype: applehv
version:
    apiversion: 5.2.2
    version: 5.2.2
    goversion: go1.23.0
    gitcommit: fcee48106a12dd531702d729d17f40f6e152027f
    builttime: Thu Aug 22 02:43:11 2024
    built: 1724262191
    osarch: darwin/arm64
    os: darwin

動作確認

公式リポジトリのチュートリアルにある以下のコマンドでコンテナを起動してみる。

podman run --name basic_httpd -dt -p 8080:80/tcp docker.io/nginx

実行すると以下のように出力される。

 $ podman run --name basic_httpd -dt -p 8080:80/tcp docker.io/nginx
Trying to pull docker.io/library/nginx:latest...
Getting image source signatures
Copying blob sha256:ee57511b3c684acfe64e2025b557909406ca31f8dd53e0b0399a644c10ec1940
Copying blob sha256:486c5264d3ad516a7daceee96f00c0999acc47c3c2230491df3f1071e3df93c3
Copying blob sha256:3cad04a21c991089f34f9da43b355f48785352cee1b72182a0d9ffcad16e63d9
Copying blob sha256:cc4f24efc205f5b338585fde826ee60f4d21fe7b9e95073e0676378a84140e22
Copying blob sha256:92c3b3500be621c72c7ac6432a9d8f731f145f4a1535361ffd3a304e55f7ccda
Copying blob sha256:33791ce134bf8cde1f6f9473576cdbd3c087aec33541fa492051bc2dbb6872ba
Copying blob sha256:b3fd15a82525302ad66ab4a6c8109db464206085e4755cd0b7de443dcf5bb295
Copying config sha256:195245f0c79279e8b8e012efa02c91dad4cf7d0e44c0f4382fea68cd93088e6c
Writing manifest to image destination
5aa547786eddf0265c3663fa96572fbc37326675621947d66cdf1bb8b0fff016

コンテナの状態を確認する。

podman ps

実行例

 $ podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED             STATUS             PORTS                         NAMES
5aa547786edd  docker.io/library/nginx:latest  nginx -g daemon o...  About a minute ago  Up About a minute  0.0.0.0:8080->80/tcp, 80/tcp  basic_httpd

起動状態であることが確認できる。

以上で動作確認は完了。