付録A:コマンドリファレンス

基本コマンド

コンテナ管理

# コンテナの実行
podman run [OPTIONS] IMAGE [COMMAND]

# コンテナの一覧表示
podman ps [OPTIONS]

# コンテナの停止
podman stop [OPTIONS] CONTAINER

# コンテナの削除
podman rm [OPTIONS] CONTAINER

# コンテナへの接続
podman exec [OPTIONS] CONTAINER COMMAND

# コンテナのログ確認
podman logs [OPTIONS] CONTAINER

イメージ管理

# イメージの取得
podman pull [OPTIONS] IMAGE

# イメージの一覧表示
podman images [OPTIONS]

# イメージのビルド
podman build [OPTIONS] PATH

# イメージのタグ付け
podman tag SOURCE_IMAGE TARGET_IMAGE

# イメージの削除
podman rmi [OPTIONS] IMAGE

# イメージのプッシュ
podman push [OPTIONS] IMAGE

ボリューム管理

# ボリュームの作成
podman volume create [OPTIONS] [VOLUME]

# ボリュームの一覧表示
podman volume ls [OPTIONS]

# ボリュームの詳細表示
podman volume inspect [OPTIONS] VOLUME

# ボリュームの削除
podman volume rm [OPTIONS] VOLUME

# ボリュームのプルーニング
podman volume prune [OPTIONS]

ネットワーク管理

# ネットワークの作成
podman network create [OPTIONS] NETWORK

# ネットワークの一覧表示
podman network ls [OPTIONS]

# ネットワークの詳細表示
podman network inspect [OPTIONS] NETWORK

# ネットワークの削除
podman network rm [OPTIONS] NETWORK

# ネットワークへの接続
podman network connect [OPTIONS] NETWORK CONTAINER

# ネットワークからの切断
podman network disconnect [OPTIONS] NETWORK CONTAINER

よく使うオプション

podman run オプション

オプション 説明 例
———– ―――― ――――
-d, --detach バックグラウンドで実行 podman run -d nginx
-i, --interactive 標準入力を開く podman run -i alpine
-t, --tty 擬似TTYを割り当て podman run -it alpine sh
--rm 終了時に自動削除 podman run --rm alpine
-p, --publish ポートマッピング podman run -p 8080:80 nginx
-v, --volume ボリュームマウント podman run -v /host:/container alpine
-e, --env 環境変数設定 podman run -e VAR=value alpine
--name コンテナ名設定 podman run --name myapp nginx
-m, --memory メモリ制限 podman run -m 512m alpine
--cpus CPU制限 podman run --cpus 0.5 alpine

podman build オプション

オプション 説明 例
———– ―――― ――――
-t, --tag イメージタグ podman build -t myapp:latest .
-f, --file Dockerfile指定 podman build -f custom.dockerfile .
--no-cache キャッシュ無効化 podman build --no-cache .
--pull 最新ベースイメージ取得 podman build --pull .
--build-arg ビルド引数 podman build --build-arg VERSION=1.0 .

systemd統合

Quadletによるユニット定義(推奨)

2026年5月23日時点の Podman 公式ドキュメントでは、systemd 配下でコンテナや Pod を管理する 新規運用には Quadlet の利用が推奨されています。rootless 運用では、ユーザー単位の ~/.config/containers/systemd/ 配下へ定義ファイルを置き、systemctl --user で管理します。

# rootless ユーザーサービス用の Quadlet 定義
mkdir -p ~/.config/containers/systemd
cat > ~/.config/containers/systemd/myapp.container <<'EOF'
[Unit]
Description=My Podman application
Wants=network-online.target
After=network-online.target

[Container]
Image=registry.example.com/team/myapp:1.0.0
ContainerName=myapp
PublishPort=8080:8080
Volume=myapp-data:/var/lib/myapp:Z

[Service]
Restart=on-failure
TimeoutStartSec=900

[Install]
WantedBy=default.target
EOF

# systemd に Quadlet 定義を再読込させ、有効化して起動
# [Install] の WantedBy= は enable 時のリンク先を定義する
systemctl --user daemon-reload
systemctl --user enable --now myapp.service
systemctl --user status myapp.service

既存ユニットの生成(互換・移行調査用)

# `podman generate systemd` は deprecated。新規運用は Quadlet を優先する。
# 既存コンテナからユニットファイルを確認する場合
podman generate systemd --name CONTAINER > container.service

# 新規コンテナ用ユニットファイル生成
podman generate systemd --new --name CONTAINER > container.service

# ファイルオプション付き
podman generate systemd --files --name CONTAINER

systemdサービス管理

# ユーザーサービスとして登録
systemctl --user daemon-reload
systemctl --user enable container.service
systemctl --user start container.service

# システムサービスとして登録(root)
sudo systemctl daemon-reload
sudo systemctl enable container.service
sudo systemctl start container.service

Pod管理

# Podの作成
podman pod create --name mypod

# Pod内でコンテナ実行
podman run --pod mypod -d nginx
podman run --pod mypod -d redis

# Podの状態確認
podman pod ps
podman pod inspect mypod

# Podの停止・削除
podman pod stop mypod
podman pod rm mypod

トラブルシューティング用コマンド

# システム情報表示
podman info

# バージョン確認
podman version

# イベント監視
podman events

# システムプルーニング(注意: 未使用リソースが削除される)
podman system prune

# 影響が大きいプルーニング(未使用イメージも削除されるため注意)
podman system prune --all

# リセット(注意: データ消失。原則としてテスト環境でのみ実行)
podman system reset

# デバッグログ有効化
podman --log-level=debug run alpine