🦭
Podman v3.4.0 リリースノート
Podman v3.4.0がアップストリームでリリースされました。
リリースノートを日本語に翻訳したものを公開します。どんな内容があるのか把握するのにお役立てください。
以下、リリースノート日本語翻訳
v3.4.0
新機能
- PodがInitコンテナをサポートするようになりました!Initコンテナとは、Podの残りの部分が起動する前に実行されるコンテナです。Initコンテナには2つのタイプがあります。「always」は常にポッドの起動前に実行され、「once」はポッドの初回起動時にのみ実行され、その後は削除されます。これらは、
podman create
コマンドの--init-ctr
オプションで追加できます。
- Initコンテナのサポートは、
podman play kube
とpodman generate kube
にも追加されました。KubernetesのYAMLに含まれるInitコンテナは、PodmanのInitコンテナとして作成され、Podmanによって生成されたYAMLは、作成されたすべてのInitコンテナを含みます。
-
podman play kube
コマンドが、イメージのビルドをサポートするようになりました。--build
オプションが与えられ、指定されたイメージの名前を持つディレクトリが現在の作業ディレクトリに存在し、有効なContainerfileまたはDockerfileが存在する場合、そのイメージがビルドされ、コンテナに使用されます。
-
podman play kube
コマンドに新しいオプション、--down
が追加され、与えられたKubernetesのYAMLで作成されたポッドやコンテナを削除することができるようになりました。
-
podman generate kube
コマンドは、ボリューム上の SELinux マウントオプション (:z
と:Z
) に対して、podman play kube
コマンドが尊重するアノテーションを生成するようになりました。
- ポッド内のすべてのコンテナのログを同時に返す、
podman pod logs
という新しいコマンドが追加されました。
- 2つの新しいコマンド、
podman volume export
(ボリュームをtarファイルにエクスポートする)とpodman volume import
(与えられたtarファイルからボリュームを生成する)が追加されました。
-
podman auto-update
コマンドは、シンプルなロールバックをサポートするようになりました。自動アップデート後にコンテナの起動に失敗した場合、以前のイメージにロールバックして再度起動します。
- Pod はデフォルトでユーザーネームスペースを共有するようになり、
podman pod create
コマンドは--userns
オプションをサポートするようになりました。これにより、ルートレスのポッドを--userns=keep-id
オプションで作成できるようになりました。
-
podman pod ps
コマンドは、--filter
オプションで指定したタイムスタンプ以前に作成されたPodを返すuntil
という新しいフィルタをサポートするようになりました。
-
podman image scp
コマンドが追加されました。このコマンドは、異なるホスト間でイメージを転送することができます。
-
podman stats
コマンドでは、情報が更新されるまでの時間を指定する新しいオプション、--interval
をサポートします。
-
podman inspect
コマンドは、コンテナによって公開された(しかし外部には公開していない)ポートを含むようになりました(例:--publish-all
が指定されていない場合、--expose
からのポート)。
-
podman inspect
コマンドに新しいブール値Checkpointed
が追加されました。これは、podman container checkpoint
操作の結果としてコンテナが停止したことを示します。
-
podman volume create
で作成されたボリュームは、XFS 上で実行されたときにクオータの設定をサポートするようになりました。size
とinode
オプションは、ボリュームが消費する最大サイズと最大inode数を制限することができます。
-
podman info
コマンドが、使用可能なログドライバ、ネットワークドライバ、ボリュームプラグインの情報を出力するようになりました (#11265)。
-
podman info
コマンドは、現在使用されているログドライバと、使用されているディストリビューションのバリアントとコードネームを出力するようになりました。
-
podman machine init
で作成した VM のパラメータ(ディスク容量、メモリ、CPU)をcontainers.conf
で設定できるようになりました。
-
podman machine ls
コマンドは、podman machine
で管理されている VM の追加情報(CPU、メモリ、ディスクサイズ)を表示するようになりました。
-
podman ps
コマンドは、ヘルスチェックを行うコンテナの状態に、ヘルスチェックの状態を含めるようになりました (#11527)。
変更点
-
podman build
コマンドには、Docker との互換性を高めるために、podman buildx
という新しいエイリアスが追加されています。すでに多くのdocker buildx
フラグのサポートをpodman build
に追加しており、今後もそうすることを目指しています。
- ユーザーセッションや書き込み可能な一時ファイルディレクトリがない状態でPodmanが実行された場合、より適切なエラーメッセージが表示されるようになりました。
- デフォルトのログドライバが
file
からjournald
に変更されました。file
ドライバはログローテーションを適切にサポートしていなかったので、これでより良い体験ができるはずです。journaldがシステムで利用できない場合、Podmanは自動的にfile
に戻ります。
- Podman がネットワークの削除に
ip
コマンドを使わなくなりました (#11403)。
-
podman network create
で非推奨の--macvlan
フラグが使用されると警告が出るようになりました。このフラグはPodman 4.0のリリースで完全に削除される予定です。
-
podman machine start
コマンドは、VM の起動に成功したときにメッセージを表示するようになりました。
-
podman stats
コマンドが、一時停止中のコンテナにも使えるようになりました。
-
podman unshare
コマンドは、ユーザーネームスペースで実行されたコマンドの終了コードを返すようになりました(コマンドが正常に実行されたと仮定しています)。
- ヘルスチェックに成功しても、ログスパムを減らすためにシステムログに
healthy
行が追加されなくなりました。
- Podman リモートクライアントでショートネームのプロンプトが表示されない場合の一時的な回避策として、
podman machine
で作成されたVMは、デフォルトでdocker.io
レジストリのみを使用するようになりました。
バグ修正
- sysctls(特に
containers.conf
で指定されたデフォルトのsysctls)の定義に空白があると、正しく解析されないというバグを修正しました。
- Windowsリモートクライアントでボリュームパスの検証が正しく行われないというバグを修正しました(#10900)。
-
journald
ログドライバで実行されたコンテナからのログの最初の行がスキップされることがあるバグを修正しました。
-
podman commit
で作成したイメージに、コンテナが公開しているポートが含まれていなかったバグを修正しました。
-
podman auto-update
コマンドがイメージをpullする際にio.containers.autoupdate.authfile
ラベルを無視してしまうバグを修正しました (#11171)。
-
podman create
およびpodman run
の--workdir
オプションに、ボリュームがマウントされているディレクトリを設定できないバグを修正しました (#11352)。
- systemd が管理する Podman コンテナで systemd のソケットアクティベーションが適切に動作しないバグを修正しました (10443)。
- コンテナに追加された環境変数のシークレットが、コンテナ内で起動した exec セッションで利用できないというバグを修正しました。
-
XDG_RUNTIME_DIR
に長いパスが設定されている場合、ルートレスコンテナがポートフォワーディングサービスrootlessport
の起動に失敗することがあるバグを修正しました。
-
podman create
とpodman run
の--systemd
オプションへの引数が大文字と小文字を区別していたバグを修正しました (#11387)。
-
podman manifest rm
コマンドが、マニフェスト自体ではなく、マニフェストから参照されるイメージも削除してしまうバグを修正しました (#11344)。
- 環境変数
TMPDIR
が設定されていない場合、OS XのPodmanリモートクライアントが正しく動作しないというバグを修正しました(#11418)。
-
/etc/hosts
ファイルにlocalhost
のエントリが含まれていることが保証されていないバグを修正しました (これは--net=host
が使用されている場合にも保証されません。このようなコンテナはホストの/etc/hosts
と正確に一致します) (#11411)。
-
podman machine start
コマンドがサポートされていない CPU 機能に関する警告を表示してしまうバグを修正しました (#11421)。
- cgroup の情報にアクセスする際に、
podman info
コマンドがセグメンテーションを起こすことがあるバグを修正しました。
- コンテナが終了したときに
podman logs -f
コマンドがハングアップするバグを修正しました (#11461)。
- 再起動ポリシーを指定したコンテナで
podman generate systemd
コマンドが使用できないバグを修正しました (#11438)。
- リモートの Podman クライアントの
podman build
コマンドで、クライアントの UID と GID が 65536 以上の場合に、コンテナのビルドに失敗するバグを修正しました (#11474)。
- リモートのPodmanクライアントの
podman build
コマンドで、コンテキストディレクトリがシンボリックリンクの場合にコンテナのビルドに失敗するバグを修正しました(#11732)。
- 非ブリッジネットワーク構成が指定されたときに、
podman play kube
の--network
フラグが適切に解析されなかったバグを修正しました。
- 検査対象のコンテナが検査中に削除された場合に、
podman inspect
コマンドがエラーになることがあるバグを修正しました (#11392)。
-
podman play kube
コマンドが、containers.conf
で指定されたデフォルトの pod infra イメージを無視してしまうバグを修正しました。
- ある状況下で
podman inspect
の--format
オプションが機能しないというバグを修正しました (#8785)。
- リモートの Podman クライアントの
podman run
およびpodman exec
コマンドが 8192 バイトごとに出力をスキップしてしまうバグを修正しました (#11496)。
- 実行中にコンテナが再起動した場合に、
podman stats
コマンドが意味のない結果を出力するバグを修正しました (#11469)。
- WindowsクライアントでSTDOUTがリダイレクトされると、リモートのPodmanクライアントがエラーになるバグを修正しました(#11444)。
- コンテナ内のアプリケーションが 125 で終了した場合に、
podman run
コマンドが 0 を返すことがあるというバグを修正しました (#11540)。
-
--restart=always
を設定したコンテナが、rootlessportポートフォワーディングサービスを使って自動的に再起動できなかったバグを修正しました。
- コンテナがポッドの一部である場合、
podman create
とpodman run
の--cgroups=split
オプションが静かに破棄されてしまうバグを修正しました。
- 与えられたイメージ名にタグが含まれていると、
podman container runlabel
コマンドが失敗することがあるというバグを修正しました。
- ある状況下で Podman が
/etc/hosts
に余分な127.0.0.1
エントリを追加してしまうバグを修正しました (#11596)。
- リモートの Podman クライアントの
podman untag
コマンドが、ダイジェストを含むタグを適切に処理できないバグを修正しました (#11557)。
-
podman ps
の--format
オプションが、表形式の出力のためのtable
引数を適切にサポートしていなかったバグを修正しました。
-
podman ps
の--filter
オプションがヘルスチェックの状態によるフィルタリングを適切に処理していなかったバグを修正しました (#11687)。
-
podman run
とpodman start --attach
コマンドが、既に削除されたコンテナの終了コードを取得する際に競合してエラーになるバグを修正しました (例: 外部からのpodman rm -f
による) (#11633)。
-
podman generate kube
コマンドが生成された YAML にデフォルトの環境変数を追加してしまうバグを修正しました。
-
podman generate kube
コマンドが元のイメージのデフォルトの CMD を生成された YAML に追加してしまうバグを修正しました (#11672)。
- ある状況下で
podman rm --storage
コマンドがコンテナの削除に失敗することがあるというバグを修正しました (#11207)。
- Linux 上で
podman machine ssh
コマンドを実行すると失敗することがあるというバグを修正しました (#11731)。
- すでに停止しているコンテナに対して
podman stop
コマンドを使用するとエラーになるというバグを修正しました(#11740)。
-
podman rename
コマンドを使用してポッド内のコンテナの名前を変更した後、podman pod rm
を使用してポッドを削除すると、コンテナが削除されているにもかかわらず、Podman がコンテナの新しい名前が永久に使用されていると信じてしまうバグを修正しました (#11750)。
API
- Libpod Pull の Image 用エンドポイントに新しいクエリパラメータ
quiet
が追加されました。このパラメータを true に設定すると、Image Pull のプログレスレポートが表示されなくなります (#10612)。
- Compat Eventsエンドポイントに、Docker v1.21 APIで非推奨とされていたいくつかのフィールドが追加され、古いクライアントとの互換性が向上しました。
- Compat List と Inspect endpoints for Images は、Docker との互換性を高めるために、イメージ ID の前に
sha256:
を付けるようになりました (#11623)。
- コンテナのCompat Createエンドポイントで、ヘルスチェック関連のフィールドのデフォルト値が正しく設定されるようになりました (#11225)。
- コンテナ用のCompat Createエンドポイントが、
Mounts
フィールドで提供されるボリュームオプションをサポートするようになりました (#10831)。
- Secrets の Compat List エンドポイントでは、新しいクエリパラメータ
filter
がサポートされ、返される結果をフィルタリングできるようになりました。
- Compat Authエンドポイントがレジストリへのログインに失敗したときに、正しいレスポンスコード(400ではなく500)を返すようになりました。
- バージョンのエンドポイントに、使用されているOCIランタイムとConmonの情報が含まれるようになりました(#11227を参照してください)。
- X-Registry-Configヘッダーが適切に処理されず、画像を取り込む際にエラーが発生するというバグを修正しました(#11235)。
- エラーメッセージを作成する際に、無効なクエリパラメータを指定すると、NULLポインタの参照が発生することがあるというバグを修正しました。
- APIリクエストとレスポンスのトレースレベルでのロギングが大幅に改善され、リクエストとレスポンスを相関させるためのX-Reference-Idヘッダーが追加されました(#10053を参照)。
その他
- Buildah を v1.23.0 に更新しました。
- container/storage library を v1.36.0 に更新しました。
- container/image library を v5.16.0 に更新しました。
- container/common library を v0.44.0 に更新しました。
Discussion