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 --help特定のコマンドのヘルプを表示するには、以下のように使用できます。
podman pod help
2. Podmanを使用したコンテナイメージの管理
次に、Podmanを使用したコンテナイメージの管理に移ります。コンテナイメージ管理に関連する基本的なコマンドをいくつか知っておく必要があります。これには、イメージの検索、イメージのダウンロード、ローカルシステム上の利用可能なイメージの表示、およびイメージの削除が含まれます。
イメージを検索するには、以下のコマンドを実行します。
podman search nginxこのコマンドは、’/etc/containers/repositories.conf’構成ファイルに既に定義されているすべての利用可能なリポジトリで、’nginx’という単語を含むイメージを検索します。

次に、以下の’podman pull’コマンドを使用していくつかのイメージをダウンロードします。
podman pull docker.io/library/nginx
podman pull docker.io/library/alpine完了したら、サーバーマシン上のすべての利用可能なイメージを確認します。
podman imagesこれで、システムにnginxとalpineのイメージが取得されます。

alpineイメージを削除するには、以下のように’rmi’オプションを使用できます。
podman rmi alpine
その結果、システムには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以下のような結果が得られます。

コンテナからログアウトするには、’exit’と入力します。
次に、’hakase-nginx’コンテナを停止します。
podman stop hakase-nginxその後、コンテナを削除します。
podman rm hakase-nginx
実行中のコンテナを強制的に停止して削除したい場合は、オプションに’-f’を使用できます。
podman rm hakase-nginx -f4. ボリュームの管理
バージョン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’であることが表示されます。

そのディレクトリに移動し、新しい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-nginxhttpieを使用して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ヘッダー応答が得られます。

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 .
完了したら、マシン上の新しいイメージを確認します。
podman imagesこれで、’hakase-image’が表示されます。

次に、以下のコマンドを実行して’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を使用してアプリケーションの新しいカスタムイメージを作成できます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。