🦭
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 machine
VM で使用する場合、ボリュームは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