podman-composeで管理しているコンテナのイメージを、最新のものに更新する手順をまとめました。
今回は例として、「astro-nginx」というサービス名(compose.yamlで定義した名前)で使用しているNginxのイメージを最新版に更新していきます。
プロジェクトディレクトリへ移動
まずはじめに、「compose.yaml」または「docker-compose.yml」ファイルが配置されているプロジェクトディレクトリに移動します。
$ cd プロジェクトディレクトリ
変更前のNginxバージョンを確認
イメージが更新されたことがわかるように、現在コンテナ内で動作しているNginxのバージョンを確認しておきます。
podman-composeでコンテナ内でコマンドを実行したい場合は、以下コマンドを実行します。
podman-compose exec サービス名 実行コマンド
今回は「astro-nginx」のNginxバージョンを確認したいので、以下のコマンドを実行します。
$ podman-compose exec astro-nginx nginx -v podman-compose version: 1.0.6 ['podman', '--version', ''] using podman version: 4.9.3 podman exec --interactive --tty gamelife_astro-nginx_1 nginx -v nginx version: nginx/1.31.0 exit code: 0
Nginxのバージョンが「nginx/1.31.0」であることが確認できました。
最新のイメージをダウンロード
次に、リモートレジストリから最新のイメージをダウンロード(pull)します。
「compose.yaml」に定義されている全てのイメージを更新したい場合は、以下のコマンドを実行します。
$ podman-compose pull
特定サービスのイメージをダウンロードしたい場合は、後ろにサービス名を指定します。
$ podman-compose pull サービス名
実行例
今回は「astro-nginx」サービスのみイメージを更新したいので、サービス名を指定して実行します。
$ podman-compose pull astro-nginx
新しいイメージの反映(コンテナの再起動)
新しいイメージを反映させるため、コンテナを一度停止・削除して再起動します。
「compose.yaml」に定義されている全てのサービスを停止・削除して再起動したい場合は、以下のコマンドを実行します。
podman-compose down podman-compose up -d
特定のサービスのみ再起動してイメージを反映させたい場合は、サービス名を指定して実行します。
podman-compose down サービス名 podman-compose up -d サービス名
実行例
「astro-nginx」を再起動して、新しいイメージを反映させます。
$ podman-compose down astro-nginx $ podman-compose up -d astro-nginx
イメージ変更後のNginxバージョン確認
最後に、新しいイメージが正しく反映されているか、Nginxのバージョンを確認してみます。
$ podman-compose exec astro-nginx nginx -v podman-compose version: 1.0.6 ['podman', '--version', ''] using podman version: 4.9.3 podman exec --interactive --tty gamelife_astro-nginx_1 nginx -v nginx version: nginx/1.31.3 exit code: 0
Nginxのバージョンが「nginx/1.31.3」に更新され、新しいイメージへ更新されていることが確認できました。


コメント