
コンテナのデプロイメントのためにUbuntuベースのLinuxディストリビューションからRHELベースのLinuxディストリビューションに切り替えたことがある方なら、Dockerが新しいプラットフォームにとって最も簡単で最適な選択肢ではないことに気付いたことでしょう。幸いなことに、ほとんどのRHELベースのディストリビューションにはPodmanがデフォルトでインストールされているので、コンテナの操作に直接進むことができます。
でも、なぜ全く新しいツールを学ぶ必要があるのでしょうか?幸いなことに、PodmanはDockerのほぼ1:1の代替ツールなので、どちらか一方を知っていればもう一方を使うことができます。Podmanの最初のステップについては既にご紹介しましたが、今回はボリュームの作成と管理について少し詳しく説明します。
なぜボリュームが重要なのか?それは単純に、永続的なストレージだからです。例えば、データを使用するコンテナをデプロイしたとします。災害が発生するまではすべて順調に進んでいましたが、コンテナに障害が発生し、データも一緒に失われてしまいます。そんな状況は避けたいものです。
参照: 採用キット: バックエンド開発者 (TechRepublic Premium)
このような大惨事を避けるには、ボリュームを使用してコンテナをデプロイします。これにより、データは永続的な状態に保存されるため、コンテナがダウンしてもデータは安全に保持され、別のコンテナで使用できます。データに依存するコンテナには、ボリュームを使用することをお勧めします。特に、ご自身やビジネスがそのコンテナで使用されるデータに依存している場合はなおさらです。
では、Podman でボリュームを操作するにはどうすればよいでしょうか? 詳しく見ていきましょう。
Podmanでボリュームを作成および管理するために必要なもの
必要なのは、PodmanがインストールされたLinuxディストリビューションだけです。RHEL、Rocky Linux、AlmaLinux、CentOSなどが利用可能です。これで完了です。
Podmanでボリュームを作成する方法
まず最初にボリュームを作成します。Linuxディストリビューションにログインし、ターミナルウィンドウを開きます。ここではNGINXコンテナ用のボリュームを作成するとします。以下のコマンドでボリュームを作成します。
podman volume create nginx-volume
出力は単純なものになるはずです:
nginx-volume
次のコマンドでボリュームの作成を確認できます。
podman volume ls
上記のコマンドを実行すると、次のような出力が出力されます。
DRIVER VOLUME NAME
local nginx-volume
詳細情報を取得するには、次のコマンドを発行します。
podman volume inspect nginx-volume
上記のコマンドを実行すると、次のような内容が出力されます。
[
{
"Name": "nginx-volume",
"Driver": "local",
"Mountpoint": "/home/jack/.local/share/containers/storage/volumes/nginx-volume/_data",
"CreatedAt": "2022-09-26T12:52:36.125241042-04:00",
"Labels": {},
"Scope": "local",
"Options": {},
"MountCount": 0,
"NeedsCopyUp": true,
"NeedsChown": true
}
]
Podmanでボリュームを使用する方法
ボリュームを作成したので、NGINXコンテナのデプロイメントで使用してみましょう。その前に、少し遊んでみましょう。NGINXウェブサーバー用の新しいindex.htmlファイルを作成しましょう。以下のコマンドでボリュームディレクトリに移動します。
cd /home/$USER/.local/share/containers/storage/volumes/nginx-volume/_data
それでは、次のコードで index.html を作成しましょう。
nano index.html
そのファイルに次の内容を貼り付けます。
<h2>Hello, TechRepublic!</h2>
ファイルを保存して閉じます。
次のコマンドを使用して、ボリュームに接続されたコンテナをデプロイします。
podman run -d -p 8080:80 -v nginx-volume:/usr/share/nginx/html --name nginx-volumetest nginx:latest
上記のコマンドで、nginx-volume を NGINX コンテナ内の /usr/share/nginx/html ディレクトリにマッピングしました。これで、Web ブラウザで http://IP:8080(IP はホスティングサーバーの IP アドレス)にアクセスすると、「Hello, TechRepublic!」というメッセージが表示されるはずです。
エラーが表示された場合は、次の 2 つのコマンドでファイアウォールを開く必要があります。
sudo firewall-cmd --permanent --add-port 8080/tcp
sudo firewall-cmd --reload
ここで、Web ページをリロードすると、メッセージが表示されます (図 A )。
図A

これで、コンテナに障害が発生しても、ボリューム内のデータはそのまま残ります。ボリュームを削除する必要がある場合は、次のコマンドを実行するだけです。
podman volume rm nginx-volume
Podmanを使ったボリューム管理はこれで完了です。これは、コンテナデプロイメントで永続的なデータを保持したい人にとって重要な機能です。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。