🦭

Podman v4.2.0 リリースノート

2022/09/30に公開

Podman v4.2.0がアップストリームでリリースされました。

https://github.com/containers/podman/releases/tag/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).servicemy.yaml に含まれる Kubernetes ポッドやデプロイを systemd で実行させることができます。
  • podman play kube コマンドは、Kubernetes ポッドのセキュリティコンテキストにある RunAsUserRunAsGroupSupplementalGroups 設定を保持するようになりました。
  • podman play kube コマンドは、BlockDeviceCharDevice タイプのボリュームをサポートするようになりました (#13951)。
  • podman play kube コマンドに新しいフラグ --userns が追加され、作成するポッドのユーザーネームスペースを設定できるようになりました。現在のところ、2つの値が使用可能です。hostauto です (#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 createpodman run コマンドは、--cpu-shares オプションに -c ショートオプションを追加できるようになりました。
  • podman createpodman 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 runpodman create--image-volume オプションのデフォルトは、 containers.confimage_volume_mode 設定で設定できるようになりました (#14230).
  • オーバーレイボリュームは workdirupperdir という 2 つの新しいオプションをサポートし、異なるコンテナの複数のオーバーレイボリュームが同じ workdirupperdir を使用できるようになりました (#14427)。
  • podman volume create コマンドは copynocopy という 2 つの新しいオプションをサポートするようになり、コンテナ内のオーバーマウントされたフォルダのコンテンツを新しく作成される名前付きボリュームにコピーするかどうかを制御できます (copy-up) 。
  • ボリュームプラグインを使用して作成されたボリュームは、ボリュームプラグインに接触する全ての操作のタイムアウトを (標準の 5 秒のタイムアウトに代わって) --opt o=timeout= オプションで podman volume create (BZ 2080458) で指定できるようになりました。
  • podman volume ls コマンドの --filter name= オプションがボリューム名の正規表現マッチングをサポートしました (#14583)。
  • podman machine VM で使用する場合、ボリュームは podman create -vpodman run -vsecurity_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 pushpodman manifest push でシグストアの署名を作成する機能を追加した。
  • イメージ署名のパスフレーズをファイルから読み込むオプションを追加しました

変更点

  • 一時停止中のコンテナは、podman kill コマンドで kill できるようになりました。
  • podman system prune コマンドは未使用のネットワークを削除するようになりました。
  • podman runpodman 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 createpodman 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 runpodman create コマンドの --device-cgroup-rule オプションでデバイスのメジャー番号のワイルドカードを正しくパースできないバグを修正しました。
  • 32 ビットシステムで podman play kube コマンドを実行すると、総メモリ量が正しく計算されないバグを修正しました (#14819).
  • podman generate kube コマンドで、生成される YAML にポートやホスト名が正しく設定されないバグを修正しました (#13030)。
  • podman system df --format "{{ json . }}" コマンドが SizeReclaimable フィールドを出力しないバグを修正しました (#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エンドポイントがSecondaryIPAddressesSecondaryIPv6Addressesフィールドにネットマスクを適切に設定しないバグを修正しました (#14674).
  • Libpod Stats の Pods 用エンドポイントは、2 つの新しいパラメータ streamdelay によるストリーミング出力に対応しました (#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