Podman · 2 min read · Feb 11, 2026

Podmanの使い方: 画像、コンテナ、ボリュームの管理

Podmanは、Dockerに似た機能を提供するコンテナランタイムです。libpodライブラリの一部であり、ポッド、コンテナ、コンテナイメージ、コンテナボリュームを管理するために使用できます。Podmanは、クライアント-サーバーアーキテクチャを使用し、実行するためにdockerデーモンを必要とするDockerとは非常に異なりますが、Podmanは実行するためにデーモンを必要とせず、ルート権限なしで問題なく実行できます。

このチュートリアルでは、コンテナ、イメージ、ボリュームの管理とコンテナイメージの作成に関するPodmanの基本的な使用法を示します。このガイドを完了するには、podmanがインストールされている必要があります。異なるオペレーティングシステムのためのガイドは次のとおりです:

  • Ubuntu 22.04にPodmanをインストールする方法
  • Rocky LinuxでのPodman(Dockerの代替)の使い方
  • Ubuntu 20.04でPodman(Dockerの代替)をインストールして使用する方法
  • Debian 11にDockerの代替としてPodmanをインストールする方法

前提条件

  • PodmanがインストールされたUbuntuサーバー
  • Dockerの基本的な知識があれば、より簡単になります

1. 基本的なPodmanコマンド

UbuntuシステムにPodmanをインストールした後、Podman自体を確認する方法を知っておく必要があります。システムに既にインストールされているバージョン、Podmanのシステム環境、および基本的なヘルプの使用法を確認する必要があります。

マシンにインストールされているPodmanのバージョンを取得するには、次のコマンドを使用します。

podman version

このガイドには、Podmanバージョン> 1.0.1で問題ありません。

次に、Podman環境のセットアップを確認します。

podman info

これにより、Podmanインストールのシステム環境が表示されます。ホストパッケージ情報、レジストリ、およびストレージが含まれます。

Podman環境

次に、次のコマンドを実行して、利用可能なすべてのPodmanコマンドオプションを表示します。

podman --help

特定のコマンドのヘルプを表示するには、以下のように使用できます。

podman pod help

Podmanヘルプ

2. Podmanを使用したコンテナイメージの管理

次に、Podmanを使用したコンテナイメージの管理に移ります。コンテナイメージ管理に関連する基本的なコマンドをいくつか知っておく必要があります。これには、イメージの検索、イメージのダウンロード、ローカルシステム上の利用可能なイメージの表示、およびイメージの削除が含まれます。

イメージを検索するには、以下のコマンドを実行します。

podman search nginx

このコマンドは、’/etc/containers/repositories.conf’構成ファイルに既に定義されているすべての利用可能なリポジトリで、’nginx’という単語を含むイメージを検索します。

Podmanイメージの検索

次に、以下の’podman pull’コマンドを使用していくつかのイメージをダウンロードします。

podman pull docker.io/library/nginx  
podman pull docker.io/library/alpine

完了したら、サーバーマシン上のすべての利用可能なイメージを確認します。

podman images

これで、システムにnginxとalpineのイメージが取得されます。

podman pullコマンドでイメージを取得

alpineイメージを削除するには、以下のように’rmi’オプションを使用できます。

podman rmi alpine

podmanイメージの削除

その結果、システムにはnginxコンテナイメージのみが残ります。

3. コンテナの管理

この段階では、コンテナイメージの管理について学びました。次のステップでは、Podmanを使用してコンテナを作成および管理する方法を学びます。

新しいコンテナを作成するには、以下のように’podman run’コマンドを使用できます。

podman run -d -p 8000:80 --name hakase-nginx docker.io/library/nginx

このコマンドは、nginxイメージに基づいて’hakase-nginx’という名前の新しいコンテナを作成し、ホストマシンのポート8000を公開します。

詳細なコマンドオプション:

-d - コンテナをバックグラウンドで実行し、結果としてコンテナIDのみを表示します。
-p 8000:80 - コンテナとホストシステムのポートマッピング。ホストマシンのポート8000とコンテナのポート80。
–name hakase-nginx - ‘hakase-nginx’というコンテナ名を指定します。

次に、システム上のすべての実行中のコンテナを表示します。

podman ps

これにより、’hakase-nginx’というコンテナが稼働していることが表示されます。

すべての利用可能なコンテナを確認したい場合は、’-a’オプションを使用できます。

podman ps -a

これで、異なる状態のすべての利用可能なコンテナが表示されます。

ホストマシン上のすべての実行中のコンテナを取得した後、コンテナ内のすべてのプロセスを確認し、実行中のコンテナに接続し、コンテナを停止および削除する方法を示します。

実行中のコンテナ内のプロセスを確認するには、次のコマンドを使用します。

podman top hakase-nginx

次に、実行中のコンテナに接続してアクセスするには、以下のように’exec’コマンドを使用できます。

podman exec -it hakase-nginx /bin/bash

‘hakase-nginx’コンテナ内で、nginxのバージョンを確認します。

nginx -V

以下のような結果が得られます。

Podmanコンテナの管理

コンテナからログアウトするには、’exit’と入力します。

次に、’hakase-nginx’コンテナを停止します。

podman stop hakase-nginx

その後、コンテナを削除します。

podman rm hakase-nginx

Podmanの開始と停止

実行中のコンテナを強制的に停止して削除したい場合は、オプションに’-f’を使用できます。

podman rm hakase-nginx -f

4. ボリュームの管理

バージョン0.12以降、Podmanはローカル専用ボリュームの作成と管理をサポートしています。したがって、古いバージョンを使用している場合は、この’podman volume’コマンドは利用できません。

次に、以下のコマンドを使用して新しいローカルボリュームを作成します。

podman volume create hakase-volume

その後、システム上のすべての利用可能なボリュームを表示します。

podman volume ls

これで、リストに’hakase-volume’が表示されます。

‘hakase-volume’ボリュームの詳細を確認するには、以下のように’inspect’オプションを使用できます。

podman volume inspect hakase-volume

これにより、ボリュームの’mountPoint’がローカルディレクトリ’/var/lib/containers/storage/hakase-volume/_data’であることが表示されます。

Podmanボリュームの管理

そのディレクトリに移動し、新しいindex.htmlファイルを作成します。

cd /var/lib/containers/storage/hakase-volume/_data  
echo "

This is custom index and volume - Hello Podman

" > index.html

次に、新しいコンテナを作成し、’hakase-volume’をコンテナにマウントします。

podman run -d -p 8000:80 -v hakase-volume:/usr/share/nginx/html --name hakase-nginx docker.io/library/nginx

コンテナが作成されたら、以下のコマンドを使用してコンテナ上の利用可能なボリュームを確認します。

podman inspect -f '{{ json .Mounts }}' hakase-nginx | jq

結果の下部に、コンテナ上の’hakase-volume’が表示されます。

ボリュームマウント

次に、コンテナのIPアドレスを確認します。

podman inspect -f '{{ .NetworkSettings.IPAddress }}' hakase-nginx

httpieを使用してHTTPポートでコンテナにアクセスします。

http http://10.88.0.4/

これにより、’hakase-volume’に作成されたカスタムindex.htmlファイルが表示されます。

コンテナボリュームにアクセス

ボリュームを削除したい場合は、’rm’オプションを使用できます。

podman volume rm hakase-volume

これにより、’hakase-volume’が削除されます。

5. コミットでカスタムイメージを作成

次に、Podmanを使用してカスタムコンテナイメージを作成します。基本的に、Podmanは変更されたコンテナに基づいてカスタムイメージを作成したり、’Dockerfile’を使用して新しいカスタムイメージを作成したりできます。

このセクションでは、’podman commit’コマンドを通じて変更されたコンテナに基づいて新しいカスタムイメージを作成します。

マスターイメージ’ubuntu’をダウンロード/プルします。

podman pull docker.io/library/ubuntu

次に、ubuntuイメージに基づいてコンテナを実行します。そして、コンテナ内で’repositories’を更新し、nginxパッケージをインストールする’bash’コマンドを実行します。

podman run --name container-temp ubuntu bash -c "apt update && apt install -y nginx"

コンテナ内でnginxのインストールを待ちます。

コミットを使用してカスタムイメージを作成

完了したら、以下のコマンドを使用して’container-temp’に基づいて新しいカスタムイメージを作成します。

podman commit container-temp my-nginx

次に、システム上の利用可能なイメージを確認します。

podman images

これで、リストに’my-nginx’という新しいイメージが表示されます。

カスタムイメージ作成

‘my-nginx’イメージに基づいてコンテナを実行したい場合は、以下のコマンドを実行します。

podman run -dt -p 8001:80 --name nginx01 my-nginx /usr/sbin/nginx -g 'daemon off;'

次に、実行中のコンテナを確認し、そのIPアドレスを確認します。

podman ps  
podman inspect --format '{{ .NetworkSettings.IPAddress }}' nginx01

これにより、’nginx01’コンテナが稼働していることが表示されます。その後、’nginx01’コンテナのHTTPポートにアクセスします。

http -p h 10.88.0.19

その結果、以下のようなHTTPヘッダー応答が得られます。

nginxテスト

6. Dockerfileを使用してカスタムイメージを作成

次に、Dockerfileを使用して新しいカスタムコンテナイメージを作成します。

新しいプロジェクトディレクトリを作成し、その中に新しい’Dockerfile’を作成します。

mkdir project; cd project/  
vim Dockerfile

以下の構成を貼り付けます。

FROM ubuntu  

# Nginxをインストール  
RUN \  
  apt-get update && \  
  apt-get install -y nginx && \  
  rm -rf /var/lib/apt/lists/* && \  
  echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \  
chown -R www-data:www-data /var/lib/nginx  

# マウント可能なディレクトリを定義します。  
VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"]  

# 作業ディレクトリを定義します。  
WORKDIR /etc/nginx  

# デフォルトコマンドを定義します。  
CMD ["nginx"]  

# ポートを公開します。  
EXPOSE 80  
EXPOSE 443

保存して閉じます。

次に、以下のpodmanコマンドを実行して、Dockerfileを使用して新しいカスタムイメージをビルドします。

podman build -t hakase-image .

Dockerfileを使用してイメージを作成

完了したら、マシン上の新しいイメージを確認します。

podman images

これで、’hakase-image’が表示されます。

Podmanイメージのリスト

次に、以下のコマンドを実行して’hakase-image’に基づいて新しいコンテナを作成します。

podman run -d -p 8002:80 --name nginx02 hakase-image

その後、’nginx02’コンテナとそのIPアドレスを確認します。

podman ps  
podman inspect --format '{{ .NetworkSettings.IPAddress }}' nginx02

‘nginx02’コンテナが稼働していることを確認します。

次に、httpieツールを使用してコンテナを確認します。

http 10.88.0.21

これにより、デフォルトのNginxページとそのHTTPヘッダーが表示されます。

テストイメージにアクセス

最後に、Podmanを使用してコンテナ、イメージ、ボリュームを管理できるようになりました。また、Dockerfileを使用してアプリケーションの新しいカスタムイメージを作成できます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。