🦭
Podman v4.2.0 リリースノート
Podman v4.2.0がアップストリームでリリースされました。
リリースノートを日本語に翻訳したものを公開します。どんな内容があるのか把握するのにお役立てください。
以下、リリースノート日本語翻訳
4.2.0
機能
- Podman は Gitlab Runner (Docker executor を使用) をサポートし、Gitlab CI/CD パイプラインで使用できるようになりました。
- 新しいコマンド
podman pod cloneが追加され、既存の Pod のコピーを作成できるようになりました。--startで新しいポッドを起動し、--destroyで元のポッドを削除し、--nameで新しいポッドの名前を変更します (#12843)。 - 新しいコマンド
podman volume reloadが追加され、Podman のデータベースと設定されているボリュームプラグインの間で状態の変更を同期するようになりました (#14207)。 - 新しいコマンド
podman machine infoが追加され、ホストと様々なマシンコンポーネントのバージョンに関する情報を表示します。 -
podman play kubeで作成した Pod を systemd のユニットファイルで管理できるようになりました。例えば、systemctl --user start podman-play-kube@$(systemd-escape my.yaml).serviceはmy.yamlに含まれる Kubernetes ポッドやデプロイを systemd で実行させることができます。 -
podman play kubeコマンドは、Kubernetes ポッドのセキュリティコンテキストにあるRunAsUser、RunAsGroup、SupplementalGroups設定を保持するようになりました。 -
podman play kubeコマンドは、BlockDeviceとCharDeviceタイプのボリュームをサポートするようになりました (#13951)。 -
podman play kubeコマンドに新しいフラグ--usernsが追加され、作成するポッドのユーザーネームスペースを設定できるようになりました。現在のところ、2つの値が使用可能です。hostとautoです (#7504)。 -
podman play kubeコマンドは、io.podman.annotations.init.container.typeアノテーションを使って作成される init コンテナのタイプを設定することができるようになりました。 -
podman pod createコマンドは、終了ポリシー (--exit-policyオプションで設定可能) をサポートするようになりました。これは、ポッド全体が停止したときにポッドのインフラコンテナがどうなるかを決定するものです。デフォルトのcontinueは現在の Podman と同じように動作しますが、新しいオプションのstopはポッド内の最後のコンテナが停止した後に infra コンテナを停止させます。 後者はpodman play kube(#13464) で作成されたポッドに使用されます。 -
podman pod createコマンドは--nameオプションを使う代わりに、引数としてポッドの名前を指定できるようになりました。例えば、以前のpodman pod create --name mypodの代わりにpodman pod create mypodと指定します。--nameオプションは非推奨ではなく、今後も動作することに注意してください。 -
podman pod createコマンドの--shareオプションは、(共有する全ての名前空間を指定するのではなく) 名前空間の前に+を付けて追加できるようになりました (#13422). -
podman pod createコマンドに新しいオプション--shm-sizeが追加されました。これは、ポッドが UTS 名前空間を共有する場合に共有する/dev/shmマウントのサイズを指定します (#14609)。 -
podman pod createコマンドに新しいオプション--utsが追加されました。これは、ポッド内のコンテナが共有する UTS 名前空間を設定するためのものです。 -
podman pod createコマンドは、--cpus,--cpuset-cpus,--memoryオプションでポッドレベルのリソース制限を設定できるようになりました。これらはポッド内のすべてのコンテナに対してリミットを設定しますが、ポッド内の個々のコンテナにはさらなるリミットを設定することができます。次のリリースでは、リソース制限のオプションがさらに増える予定です。 -
podman createとpodman runコマンドは、--cpu-sharesオプションに-cショートオプションを追加できるようになりました。 -
podman createとpodman runコマンドは、--platformオプションが指定されていれば、(イメージではなく)マニフェストリストからコンテナを作成できるようになりました (#14773). -
podman buildコマンドは、プリプロセスを必要とするContainerfile.inファイルを使用するときに、C プリプロセッサのオプションを指定するための新しいオプション、--cpp-flagをサポートするようになりました。 -
podman buildコマンドは新しいオプションである--build-contextをサポートしました。 -
podman machine inspectコマンドはホスト上の VM の Podman API ソケットの場所を表示するようになりました (#14231)。 - Windows の
podman machine initコマンドは、パッケージがプリインストールされたイメージを取得するようになりました (#14698)。 - 未使用でキャッシュされた Podman マシンの VM イメージは自動的にクリーンアップされるようになりました。Podman が別のディレクトリにキャッシュするようになったので、この変更以前に取得した古いイメージはクリーンアップされません (#14697) 。
-
podman runとpodman createの--image-volumeオプションのデフォルトは、containers.confのimage_volume_mode設定で設定できるようになりました (#14230). - オーバーレイボリュームは
workdirとupperdirという 2 つの新しいオプションをサポートし、異なるコンテナの複数のオーバーレイボリュームが同じworkdirやupperdirを使用できるようになりました (#14427)。 -
podman volume createコマンドはcopyとnocopyという 2 つの新しいオプションをサポートするようになり、コンテナ内のオーバーマウントされたフォルダのコンテンツを新しく作成される名前付きボリュームにコピーするかどうかを制御できます (copy-up) 。 - ボリュームプラグインを使用して作成されたボリュームは、ボリュームプラグインに接触する全ての操作のタイムアウトを (標準の 5 秒のタイムアウトに代わって)
--opt o=timeout=オプションでpodman volume create(BZ 2080458) で指定できるようになりました。 -
podman volume lsコマンドの--filter name=オプションがボリューム名の正規表現マッチングをサポートしました (#14583)。 -
podman machineVM で使用する場合、ボリュームはpodman create -vとpodman run -vのsecurity_modelオプションで 9p セキュリティモデルの指定をサポートするようになりました。 - リモートの Podman クライアントの
podman pushコマンドが--remove-signaturesオプションをサポートしました (#14558)。 - リモートの Podman クライアントが
podman image scpコマンドをサポートするようになりました。 -
podman image scpコマンドは転送された画像に新しい名前を付けることができるようになりました。 -
podman network lsコマンドは新しいフィルターである--filter dangling=をサポートし、現在どのコンテナにも使用されていないネットワークをリストアップします (#14595)。 -
podman waitの--conditionオプションは複数回指定して、複数の条件のうちのどれかで待つことができるようになりました。 -
podman eventsコマンドは、--filterオプションに-fショートオプションを追加できるようになった。 -
podman pullコマンドは--all-tagsオプションに-aショートオプションを追加できるようになりました。 -
podman stopコマンドに新しいフラグ--filterが追加され、停止するコンテナをフィルターできるようになりました (例:podman stop --all --filter label=COM.MY.APP)。 - Podman のグローバルオプションである
--urlに2つのエイリアスが追加されました。-Hと--hostです。 -
podman network createコマンドはデフォルトのbridgeドライバで新しいオプション--opt isolate=をサポートするようになりました。このオプションは Docker 互換 API を使って作成されたネットワークに対してデフォルトで有効になっています。 -
podman pushとpodman manifest pushでシグストアの署名を作成する機能を追加した。 - イメージ署名のパスフレーズをファイルから読み込むオプションを追加しました
変更点
- 一時停止中のコンテナは、
podman killコマンドで kill できるようになりました。 -
podman system pruneコマンドは未使用のネットワークを削除するようになりました。 -
podman runとpodman createコマンドの--userns=keep-idと--userns=nomapオプションは root Podman では(単に無視されるのではなく)許可されなくなりました。 - コンテナの
/runディレクトリがボリュームの一部である場合、Podman は/run/.containerenvファイルを作成しません (#14577). - macOS 上の
podman machine stopコマンドは、マシンが完全に停止するまで終了しないようになりました (#14148)。 - 全ての
podman machineコマンドは rootless での実行のみをサポートするようになりました(VM は rootless で実行された時のみ機能しました)。 -
podman unpause --allコマンドは、全てのコンテナではなく、一時停止しているコンテナのみを一時停止解除しようとするようになりました。 -
podman play kubeで作成される Init コンテナのデフォルトはonce型になりました (#14877). - 共有名前空間なしで作成された Pod は、明示的に要求されない限り infra コンテナを作成しないようになりました (#15048)。
-
podman create,podman run,podman cpコマンドはシェル補完でイメージやコンテナ内のパスを自動補完できるようになりました。 -
libpod/commonパッケージはどこにも使われていないため削除されました。 -
podman createとpodman runの--usernsオプションは、UID または GID のマッピングが明示的に指定された場合には受け付けられなくなりました (#15233)。
バグフィックス
- コンテナに
/devをバインドマウントして--initフラグを使用すると、コンテナの起動に失敗するバグを修正しました (#14251). - 複数のイメージをマウントする際に
podman image mountコマンドが出力を pretty-print しないというバグを修正しました。 -
podman volume importコマンドが存在しないボリュームにインポートしようとすると、無関係のエラーを表示するバグを修正しました (#14411)。 -
podman system resetコマンドが他の Podman コマンドと競合するバグを修正しました (#9075)。 - ホストデバイスのレイアウトが変更された場合に特権コンテナが再起動できないバグを修正しました (#13899)。
-
podman cpコマンドが、ディレクトリを非ディレクトリで上書きしたり、その逆をしたりするバグを修正しました。新しい--overwriteフラグをpodman cpに設定することで、必要に応じて古い動作を保持できるようになりました (#14420)。 -
podman machine sshコマンドが ssh 経由で実行したコマンドの終了コードを保持しないバグを修正しました (#14401). - M1 CPU の Mac 上で 3072MB 以上の RAM を使って
podman machineで作成した VM が起動に失敗するバグを修正しました (#14303). - Windows システムで
C:\WindowsSystem32からpodman machine initコマンドを実行すると失敗するバグを修正しました (#14416)。 -
podman machine init --nowがプロキシ環境変数を考慮しないバグを修正しました (#14640)。 -
podman machine initコマンドが$HOME/.sshディレクトリがない場合に失敗するバグを修正しました (#14572) - VM の作成に失敗しても、
podman machine initコマンドが接続を追加するバグを修正しました (#15154) -
podman machine startコマンドを中断すると、VM を起動できなくなるバグを修正しました。 -
podman machine list --formatコマンドを実行しても、見出しが表示されるバグを修正しました。 -
podman machine listコマンドがStartingフィールドを適切に設定しないバグを修正しました (#14738)。 -
podman machine startコマンドが、マシン名が数字で始まっている場合に QEMU VM の起動に失敗することがあるバグを修正しました。 - プロキシ変数を持つ Podman Machine VM が複数回起動できないバグを修正しました (#14636 および #14837)。
- Podman API を使って作成されたコンテナが、Podman API サービスが systemd によって管理されている場合、API サービスが停止すると kill されるバグを修正しました (BZ 2052697)。
-
podman -hコマンドがヘルプを表示しないバグを修正しました。 -
podman waitコマンド (および関連する REST API エンドポイント) が、コンテナが完全に終了する前に戻ってしまい、Gitlab Runner のようないくつかのツールを壊していたバグを修正しました。 - healthcheck が
health_statusイベントではなくexecイベントを生成するバグを修正しました (#13493). -
podman pod psコマンドをpodman pod rmと同時に実行するとエラーを返すバグを修正しました (#14736). -
podman systemd dfコマンドがボリュームの再利用可能なストレージを正しく計算しないバグを修正しました (#13516). - デフォルトでない OCI ランタイムを使用してエクスポートされたコンテナのチェックポイントが復元できないバグを修正しました。
- Podman を最近の runc バージョンで使用した場合に、一時停止したコンテナを削除できないバグを修正しました。
- リモート Podman クライアントの
podman manifest rmコマンドがマニフェストではなくイメージを削除してしまうバグを修正しました (#14763). -
podman runとpodman createコマンドの--device-cgroup-ruleオプションでデバイスのメジャー番号のワイルドカードを正しくパースできないバグを修正しました。 - 32 ビットシステムで
podman play kubeコマンドを実行すると、総メモリ量が正しく計算されないバグを修正しました (#14819). -
podman generate kubeコマンドで、生成される YAML にポートやホスト名が正しく設定されないバグを修正しました (#13030)。 -
podman system df --format "{{ json . }}"コマンドがSizeとReclaimableフィールドを出力しないバグを修正しました (#14769). - リモートの Podman クライアントの
podman pullコマンドが進捗を重複して表示するバグを修正しました。 - イベントやログを読み込む際にクライアントが予期せず接続を閉じてしまった場合、
podman system serviceコマンドがメモリをリークするバグを修正しました (#14879). - イメージに
/etc/passwdファイルが含まれていない場合に Podman コンテナの実行に失敗するバグを修正しました (#14966)。 - リモートの Podman クライアントの
podman pushコマンドが進捗情報を表示しないバグを修正しました (#14971)。 - 複数のコンテナを同時にロックしようとするコマンドと
podman pod rmを同時に実行すると、ロックの順序の問題でデッドロックすることがあるバグを修正しました (#14929)。 - コンテナが存在しない場合に、
podman rm --forceコマンドが 0 以外のコードで終了するバグを修正しました (#14612) - podman container restore` コマンドが、イメージと同じ名前のコンテナのチェックポイントをリストアしようとすると失敗するバグを修正しました (#15055)。
-
podman manifest push --rmコマンドがマニフェストリストではなくイメージを削除してしまうバグを修正しました (#15033)。 -
podman run --rmコマンドがコンテナの起動に失敗した場合に、コンテナの削除に失敗するバグを修正しました (#15049)。 -
podman generate systemd --newコマンドが、--sdnotifyパラメータを指定してコンテナを作成した場合に、不正なユニットファイルを作成するバグを修正しました (#15052)。 - コンテナの作成に
-h <ホスト名>を使用すると、podman generate systemd --newコマンドが失敗するバグを修正しました (#15124).
API
- Docker 互換 API が API バージョン v1.41 に対応しました (#14204)。
- Libpod API 経由で作成されたコンテナに不正な umask が設定されるバグを修正しました (#15036).
- Libpod APIのBuildエンドポイント(Image用)の
remoteパラメーターが機能しないバグを修正しました(#13831)。 - コンテナが存在しない場合に、コンテナ用のLibpod Listエンドポイントが
application/jsonコンテントタイプヘッダーを返さないというバグを修正しました (#14647)。 - コンテナ用のCompat Statsエンドポイントが不正なメモリ制限を返すことがあるバグを修正しました (#14676)。
- コンテナのエンドポイント「Compat List」および「Inspect」が、コンテナの状態に対して不正な文字列を返すことがあるバグを修正しました。
- コンテナのCompat Createエンドポイントがヘルスチェックの無効化を適切に処理しないバグを修正しました (#14493)。
- ネットワーク用の Compat Create エンドポイントが
mtu,name,mode,parentオプションをサポートしないバグを修正しました (#14482)。 - Compat Create endpoint for Networks がネットワーク名
bridgeを作成できないバグを修正しました (#14983)。 - ネットワークのCompat Inspectエンドポイントが
SecondaryIPAddressesとSecondaryIPv6Addressesフィールドにネットマスクを適切に設定しないバグを修正しました (#14674). - Libpod Stats の Pods 用エンドポイントは、2 つの新しいパラメータ
streamとdelayによるストリーミング出力に対応しました (#14674)。
その他
- Podman は
/etc/resolv.confファイルにローカルホストのサーバしか書かれていない場合、/run/NetworkManager/no-stub-resolv.confにあるネームサーバを確認するようになりました。 -
podman buildコマンドは--squash-allを指定したビルドで、同時に--layersフラグを使用できるようにして、キャッシュをサポートするようになった。 - Podman Machine のデフォルトでないパスでの QEMU インストールのサポートが改善されました。
-
podman machine sshコマンドは、実行するたびに偽の警告を表示しなくなりました。 - Windows 上で WSL プロンプトにアクセスするとき、ルートレスユーザーが優先されます。
-
podman infoコマンドは、Docker との互換性を高めるために、サポートされている認証プラグインの情報を入力するフィールドを持つようになりました。認証プラグインは現在 Podman ではサポートされていないので、このフィールドは常に空です。 -
podman system pruneコマンドは、剪定されたイメージがない場合、Deleted Imagesヘッダを表示しないようになりました。 -
podman system serviceコマンドをルート cgroup で実行すると、自動的にサブグループを作成し移動するようになりました (#14573)。 - Buildah を v1.27.0 に更新しました。
- containers/imageライブラリを v5.22.0 に更新しました。
- containers/storageライブラリをv1.42.0に更新しました。
- containers/commonライブラリを v0.49.1 に更新しました。
- Podman はコンテナ内で動作していることを検知すると自動的にサブグループを作成し、そこに自分自身を移動させます (#14884)。
- regexpに関する間違ったリリースノートを修正しました。
- 新しい MacOS インストーラー (pkginstaller 経由) がサポートされました。
Discussion