CheatSheet
日本語 icon日本語English iconEnglish
チートシートとはカンニングペーパーのことです。それが転じて、本来覚えることをまとめておいたものです。
要点をすぐに参照できるようにまとめてみました。

Podman

エンジニアのためのWebチートシート

Podmanは、デーモンレス・ルートレスなコンテナエンジンです。 Docker互換のCLIを持ちつつ、Pod管理やKubernetes YAML連携などの独自機能を備えています。 コンテナ操作、イメージ管理、Pod管理、Kubernetes連携、Dockerとの違いなどをチートシートにまとめました。

コンテナの実行

podman run [options] IMAGE [COMMAND]

オプション説明
-dバックグラウンドで実行(デタッチモード)
--name [name]コンテナに名前を付ける
-p [host]:[container]ポートマッピング(ホスト:コンテナ)
-v [host]:[container]ボリュームマウント(ホスト:コンテナ)
-e KEY=VALUE環境変数を設定
--rm終了時にコンテナを自動削除
-itインタラクティブモード + TTY割当
--network [name]ネットワークを指定
--restart [policy]再起動ポリシーを設定

コンテナ管理

コマンド説明
podman ps実行中のコンテナ一覧を表示
podman ps -a全コンテナ一覧を表示(停止中含む)
podman start [container]コンテナを起動
podman stop [container]コンテナを停止
podman restart [container]コンテナを再起動
podman rm [container]コンテナを削除
podman exec -it [container] /bin/bash実行中のコンテナ内でコマンドを実行
podman logs [container]コンテナのログを表示
podman logs -f [container]コンテナのログをリアルタイムで表示
podman inspect [container]コンテナの詳細情報を表示
podman statsコンテナのリソース使用状況を表示
podman top [container]コンテナ内のプロセス一覧を表示
podman cp [container]:[path] [host_path]コンテナとホスト間でファイルをコピー

イメージ管理

コマンド説明
podman imagesローカルイメージの一覧を表示
podman pull [image]レジストリからイメージを取得
podman push [image]レジストリにイメージをプッシュ
podman build -t [name] .Containerfileからイメージをビルド
podman tag [image] [new_name]:[tag]イメージにタグを付ける
podman rmi [image]イメージを削除
podman search [term]レジストリからイメージを検索
podman history [image]イメージのレイヤー履歴を表示
podman save -o [file].tar [image]イメージをtarファイルに保存
podman load -i [file].tartarファイルからイメージを読み込み
podman login [registry]コンテナレジストリにログイン

Pod管理

コマンド説明
podman pod create --name [name] -p [port]Podを作成
podman pod psPod一覧を表示
podman pod start [pod]Podを起動
podman pod stop [pod]Podを停止
podman pod rm [pod]Podを削除
podman pod inspect [pod]Podの詳細情報を表示

Pod作成例:Webアプリ + DB構成

  • # Create a pod with port mapping
    podman pod create --name webapp -p 8080:80
    
    # Add containers to the pod
    podman run -d --pod webapp --name web nginx:alpine
    
    podman run -d --pod webapp --name db \
      -e POSTGRES_PASSWORD=secret \
      postgres:16-alpine
    
    # Check pod status
    podman pod ps
    podman pod inspect webapp

ボリュームとネットワーク

Volume

コマンド説明
podman volume create [name]ボリュームを作成
podman volume lsボリューム一覧を表示
podman volume inspect [name]ボリュームの詳細情報を表示
podman volume rm [name]ボリュームを削除
podman volume prune未使用ボリュームを一括削除

Network

コマンド説明
podman network create [name]ネットワークを作成
podman network lsネットワーク一覧を表示
podman network inspect [name]ネットワークの詳細情報を表示
podman network rm [name]ネットワークを削除
podman network connect [network] [container]コンテナをネットワークに接続
podman network disconnect [network] [container]コンテナをネットワークから切断

Kubernetes連携

コマンド説明
podman kube generate [pod/container]コンテナ/PodからKubernetes YAMLを生成
podman kube play [file.yaml]Kubernetes YAMLからPodを作成・実行
podman kube down [file.yaml]kube playで作成したリソースを削除

Kubernetes YAML生成・適用の流れ

  • # Generate Kubernetes YAML from a pod
    podman kube generate webapp > webapp.yaml
    
    # Apply the YAML to create pods
    podman kube play webapp.yaml
    
    # Stop and remove resources
    podman kube down webapp.yaml

システム管理

コマンド説明
podman system prune -a未使用のコンテナ、イメージ、ネットワークを一括削除
podman infoPodmanシステム情報を表示
podman versionPodmanバージョンを表示
podman system dfディスク使用状況を表示

Podman Machine(macOS / Windows)

コマンド説明
podman machine initPodmanマシンを初期化(macOS/Windows)
podman machine startPodmanマシンを起動
podman machine stopPodmanマシンを停止
podman machine listPodmanマシン一覧を表示
podman machine rmPodmanマシンを削除

Dockerとの違い

項目PodmanDocker
アーキテクチャデーモンレス(fork/exec)デーモン(dockerd)が必要
ルートレス実行デフォルトでルートレス追加設定が必要
Pod対応ネイティブ対応非対応(Docker Compose使用)
Kubernetes YAMLpodman kube で生成・適用直接的なサポートなし
Composepodman-compose / podman composedocker compose(組み込み)
ソケットユーザーソケット($XDG_RUNTIME_DIR)/var/run/docker.sock

alias

  • Docker CLIとの互換性を活用して、aliasを設定することでDockerコマンドをそのまま使えます。

    alias docker=podman