Podman でコンテナのデプロイを始める方法 | TechRepublic

Podman でコンテナのデプロイを始める方法 | TechRepublic
ダブルスクリーンシステム上で Linux システムを開発している人。
画像: エステバン・マルティナ/Adobe Stock

多くの人にとって、Dockerは長年コンテナランタイムとして利用されてきました。使い方が簡単で、効率性とアクセス性を高めるサードパーティ製ツールも豊富に揃っています。もちろん、Dockerが唯一の選択肢ではありません。また、ホストOSとしてRHEL、Rocky Linux、AlmaLinuxなどのRed Hat Enterprise Linux系をお使いの場合は、DockerはPodmanに置き換えられています。

参照: 採用キット: バックエンド開発者 (TechRepublic Premium)

良い点は、PodmanはDockerに似ていることです。特に基本的な使い方に関してはそうです。ただし、KubernetesとNomad以外に、PodmanにはDocker Swarmに相当するものがないという点に留意してください。KubernetesとNomadはSwarmほど簡単にデプロイして使うことができません。

Podmanを使えば、Dockerと同じようなことが数多くできます。これからその方法をご紹介します。Podmanの最初のステップを踏み、このランタイムエンジンをより快適に使いこなせるようになるまで、実際に使ってみましょう。

Podmanを使い始めるために必要なもの

まず、PodmanをサポートするLinuxディストリビューションが必要です。Rocky LinuxやAlmaLinuxなどのRHELベースのディストリビューションは、デフォルトでPodmanがインストールされています。Ubuntuベースのディストリビューションの方が好みであれば、Podmanは比較的簡単にインストールできます。ここでは、Podmanが同梱されているディストリビューションを使用しているか、UbuntuベースのディストリビューションにPodmanがインストールされていることを前提としています。

それでは、仕事に取り掛かりましょう。

画像を検索して取得する方法

Dockerでイメージをプルする方法を覚えていますか? docker pull nginx:latest は何か分かりますか? Podmanでも全く同じです。イメージをプルする前に、検索を実行して利用可能なNGINXイメージを確認しましょう。そのためには、以下のコマンドを実行します。

podman search nginx

Docker Hubとredhat.ioレジストリの両方からいくつかのエントリが表示されるはずです。これらのエントリには、docker.io/library/nginxとしてリストされている最新の公式NGINXイメージが含まれています。このイメージをプルするには、次のコマンドを実行します。

podman pull nginx:latest

ここで、DockerとPodmanの最初の違いの一つが現れます。Dockerでイメージをプルすると、デフォルトでdocker.ioからプルされます。Podmanでは、registry.access.redhat.com、registry.redhat.io、docker.ioのいずれかからプルするかを選択できます(図A)。次に、カーソルキーを使ってプルするレジストリを選択し、キーボードのEnterキーを押して選択を確定します。

図A

Podman コマンドラインインターフェース。
公式 NGINX イメージを取得するレジストリを選択できます。

イメージがプルされたことを確認するには、次のコマンドを発行します。

podman images

新しく取得したイメージがリストに表示されます。

新しくプルしたイメージを使用してコンテナをデプロイしてみましょう。

Podmanでコンテナをデプロイする方法

Docker を使用すると、保存したイメージからコンテナをデプロイするのは次のように簡単です。

docker run –name docker-nginx -p 8080:80 -d nginx

Podman は次のような非常によく似たデプロイメント コマンドを提供します。

podman run --name podman-nginx -p 8080:80 -d nginx

このコマンドを分解してみましょう:

  • podman はコンテナ ランタイム エンジン コマンドです。
  • –name はコンテナに一意の名前を付けます。これを省略した場合、Podman がランダムな名前を割り当てます。
  • -p は、使用するポートを定義することを podman に指示します。
  • 8080:80 は、podman に 8080 を (コンテナへの) 外部ポートとして使用し、それを内部ポート 80 にマップするように指示します。
  • -d はコンテナをデタッチモードで実行するため、bash プロンプトが返されます。
  • nginx はコンテナに使用されるイメージです。

Docker でデプロイメントが成功したことを確認するには、次のコマンドを発行します。

docker ps -a

Podman の場合、コマンドは同様です。

podman ps -a

新しくデプロイされたコンテナが稼働しているのがわかるはずです。

Podmanでコンテナを停止および削除する方法

Dockerと同様に、Podmanコンテナをデプロイすると、コンテナIDとして機能する文字列が表示されます。コンテナを停止するには、そのIDの最初の4文字だけを使用します。例:

podman stop b529

コンテナを完全に削除するには、コマンドは次のようになります。

podman rm b529

コンテナを停止しただけで削除しなかった場合は、次のように再起動できます。

podman restart b529

上記のコマンドはすべて Docker 環境に似ています。

実行中のコンテナにアクセスする方法

Docker を使用すると、次のようなコマンドで現在実行中のコンテナの bash プロンプトにアクセスできます。

docker exec -it docker-nginx /bin/bash

上記のコマンドを実行すると、docker-nginxというコンテナのbashプロンプトが表示されます。Podmanでも同じ手順で実行でき、以下のようになります。

podman exec -it podman-nginx /bin/bash

次のような画面が表示されます。

root@b529f338ed24:/#

その後、exit コマンドを使用してコンテナから終了できます。

以上がPodmanコンテナランタイムエンジンの最初のステップです。簡単に言うと、Dockerが使えるなら、ほとんど手間をかけずにPodmanを使うことができます。次回は、Podmanを使ってボリュームを作成および管理する方法を学びます。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

Tagged: