🦭
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