🦭
Podman v4.1.0 リリースノート
Podman v4.1.0がアップストリームでリリースされました。
リリースノートを日本語に翻訳したものを公開します。どんな内容があるのか把握するのにお役立てください。
以下、リリースノート日本語翻訳
4.1.0
機能
- Podman が Docker Compose v2.2 以降をサポートしました(#11822)。環境変数
DOCKER_BUILDKIT=0を設定して Buildkit の使用を無効にする必要があるかもしれないことに注意してください。 - 新しいコンテナコマンドとして、
podman container cloneが追加されました。このコマンドは既存のコンテナのコピーを作成し、その際にいくつかの設定(例えばリソースの制限)を変更することができます。 - 新しいマシンコマンド、
podman machine inspectが追加されました。このコマンドはマシン VM の設定に関する詳細を提供します。 -
podman machine setコマンドは、新しい--cpus,--disk-size,--memoryオプションを使って、最初に作った後にマシンで使える CPU やメモリ、ディスクスペースを変更できるようになりました (#13633). - Podman はマシンに関する JSON イベントを
XDG_RUNTIME_DIR/podman内のmachine_events.*.sockという Unix ソケットか、環境変数PODMAN_MACHINE_EVENTS_SOCKでパスを設定したソケットに送ることをサポートするようになりました。 - 2 つの新しいボリュームコマンド、
podman volume mountとpodman volume unmountが追加されました。これらにより、Podman が管理する名前付きボリュームを外部のコンテナからマウントしたりアクセスしたりできるようになります (#12768)。 -
podman machineで作成された VM は自動的にホストの$HOMEを VM にマウントし、ホストからコンテナへボリュームをマウントできるようになりました。 -
podman container checkpointとpodman container restoreオプションは、OCI イメージへのチェックポイントと OCI イメージからのリストアをサポートするようになりました。これにより、チェックポイントを標準的なイメージレジストリ経由で配布できるようになりました。 -
podman play kubeコマンドは、fieldRefとresourceFieldRefソースを使用して指定される環境変数をサポートするようになりました。 -
podman play kubeコマンドは、提供された YAML に含まれない場合、デフォルトのリソース制限を設定するようになりました (#13115). -
podman play kubeコマンドは、新しいオプションである--annotationをサポートし、作成したコンテナにアノテーションを追加できるようになりました (#12968)。 -
podman play kube --buildコマンドが新しいオプション--context-dirをサポートしました。このオプションにより、コンテナファイルをビルドする際に使用するコンテキストディレクトリを指定できます (#12485)。 -
podman container commitコマンドに新しいオプション--squashが追加されました。このオプションは生成されたイメージを一枚に圧縮します (#12889)。 -
podman pod logsコマンドは、ログメッセージを生成したコンテナを ID ではなく名前で識別する--names(#13261) と、どのコンテナがメッセージを生成したかによって色をつける--color(#13266) という 2 つの新しいオプションをサポートするようになりました。 -
podman rmiコマンドは新しいオプションである--ignoreをサポートし、イメージの欠落によるエラーを無視するようになりました。 -
podman network createコマンドに新しいオプション--ipam-driverが追加され、ネットワーク上のコンテナに割り当てる IP アドレスの詳細が指定できるようになりました (#13521)。 -
podman machine listコマンドに新しいオプション--quietが追加され、設定されている VM の名前のみを表示して、その他の情報を表示しないようになりました。 -
podman create,podman run,podman pod createコマンドの--ipcオプションは、新たにnone,private,shareableという 3 つのモードをサポートするようになりました。IPC のデフォルトモードはshareableになり、IPC ネームスペースを他のコンテナと共有できるようになりました (#13265)。 -
podman createとpodman runコマンドの--mountオプションは、volume-optパラメータを使って作成する名前付きボリュームのオプションを設定できるようになりました (#13387)。 -
podman createとpodman runコマンドの--mountオプションは CSV フォーマットでパラメータを渡せるようになりました (#13922)。 -
podman createとpodman runコマンドの--usernsオプションは、新しいオプションであるnomapをサポートするようになりました。これは (rootless コンテナに対してのみ) コンテナを起動したユーザーの UID をコンテナにマッピングしないので、セキュリティが強化されます。 -
podman importコマンドは 3 つの新しいオプション、--arch,--os,--variantをサポートし、インポートされたイメージがどのシステム用にビルドされたかを指定できるようになりました。 -
podman inspectコマンドは、podman run,podman create,podman pod createに--net ns:オプションをつけて事前に設定されたネットワーク名前空間に参加したコンテナのネットワーク設定の情報を含めることができるようになりました。 -
podman runとpodman createコマンドは新しいオプション--chrootdirsをサポートしました。これは Podman が管理するコンテナ固有のファイル (/etc/hosts,/etc/resolv.conf, etc) をコンテナ内にマウントする追加の場所を指定します (#12961). -
podman runとpodman createコマンドは新しいオプション、--passwd-entryをサポートし、コンテナの/etc/passwdファイルにエントリーを追加できるようになりました。 -
podman images --formatコマンドは新たに 2 つの format ディレクティブを受け付けるようになりました。.CreatedAt}}と{.CreatedSince}}(#14012) です。 -
podman volume createコマンドの-oオプションに新しい引数o=noquotaが追加されました。 -
podman infoコマンドは、Podman がコンテナやイメージを保存しているドライブのディスク使用率や CPU 使用率など、Podman が動作しているマシンに関する追加情報を含むようになりました (#13876)。
変更点
-
podman run,podman create,podman pod createの--net=container:オプションは、--add-hostオプションと衝突するようになりました。 - Podman 内の SHA1 ハッシュアルゴリズムの非推奨の一部として、ルートレスネットワークネームスペースのファイル名を生成するのに使われるアルゴリズムが変更されました。その結果、Podman 4.1.0 にアップデートする前に起動したルートレスコンテナは、(
slirp4netnsだけではなく)ネットワークに参加している場合、アップグレード後のコンテナに接続できるように再起動する必要があります。 - Podman の
/etc/hostsファイルの処理が書き直され、一貫性とエッジケースへの対応が改善されました (#12003 と #13224). その一環として、containers.confに 2 つの新しいオプションが追加されました。base_hosts_file(コンテナの/etc/hostsのベースコンテンツのソースとして、標準ではない場所を指定します) とhost_containers_internal_ip(コンテナのhost.containers.internalエントリが指す特定の IP アドレスを指定します)です。 -
podman image trust showコマンドの出力に、許可されているトランスポートメカニズムについての情報が含まれるようになりました。 - Podman は SIGTERM を受け取った後、(exit code 0 で) クリーンに終了するようになりました。
- systemd モードで動作するコンテナは、環境変数
container_uuidを設定するようになりました (#13187)。 - コンテナの名前を変更すると、
podman eventsで読めるイベントが生成されるようになりました。 -
--privilegedと--cap-addフラグは相互に排他的ではなくなりました (#13449)。 -
podman createとpodman runの--mountオプションが匿名ボリュームを作成できないバグを修正しました (#13756)。 - ユーザーが OOM スコア調整を明示的に設定しない Podman コンテナで、全く設定しないのではなく、暗黙的に 0 を設定するバグを修正しました (#13731)。
-
podman machine setコマンドは、更新対象の VM が動作している間は使用できなくなりました (#13783)。 -
podman generate systemdで作成される Systemd サービスファイルは、可読性を高めるために prettyprinted されるようになりました。 - イベントログドライバ
fileはログファイルを自動的にローテートするようになり、設定したサイズ以上に大きくならないようになりました。 -
podman searchの--no-truncフラグはデフォルトでfalseになり、出力が過度に冗長にならないようになりました。
バグフィックス
- Podman が 256 を超えるメジャー番号やマイナー番号を持つデバイスをコンテナに追加できないバグを修正しました。
-
podman play kubeコマンドで作成されたコンテナが、コンテナ作成に使用された生のイメージ名を記録していなかったバグを修正しました。 - プロキシが設定されたホスト上で実行すると、
podman machineで作成した VM がポートを転送するコンテナを開始できないバグを修正しました (#13628)。 - 現在のユーザーのユーザー名が十分に長い場合に、
podman machineコマンドで作成した VM に接続できないバグを修正しました (#12751)。 - Linux 上で
podman system resetコマンドを実行すると、podman machineで作成した仮想マシンが完全に削除されないというバグを修正しました。 - 起動されていない VM を削除する際に、
podman machine rmコマンドがエラーになるバグを修正しました (#13834)。 - リモート Podman クライアントの
podman manifest pushコマンドが、認証を必要とするレジストリにプッシュできないバグを修正しました (#13629)。 - ボリュームを持つポッドに参加するコンテナにポッドのボリュームが追加されないというバグを修正しました (#13548)。
-
podman version --formatコマンドがサーバーの OS を返さないというバグを修正しました (#13690)。 -
podman play kubeコマンドで、configMapで指定したボリュームが既に存在していた場合にエラーとなるバグを修正しました (#13715)。 -
podman play kubeコマンドが Pod YAML のhostNetwork設定を尊重しないバグを修正しました (#14015). -
podman play kubeコマンドが--log-driverフラグを指定しない場合、Podman のデフォルトログドライバを無視するバグを修正しました (#13781)。 -
podman generate kubeコマンドが長すぎるラベルを含む YAML を生成するバグを修正しました (#13962). - ログドライバが
journaldでコンテナを再起動した場合に、podman logs --tail=1コマンドが失敗するバグを修正しました (#13098)。 - ヘルスチェックの間隔が指定されていないイメージから作成されたコンテナがヘルスチェックを実行しないバグを修正しました (#13912)。
-
podman network connectとpodman network disconnectコマンドが/etc/hostsに無効なエントリを残してしまうバグを修正しました (#13533)。 - リモート Podman クライアントの
podman buildコマンドの--tls-verifyオプションが機能しないバグを修正しました。 -
podman pod inspectコマンドが、Pod がホストのネットワークを使用しているかどうかを誤って報告するバグを修正しました (#14028)。 - WSL2 で Podman を実行すると、IP アドレスなしで指定されたポート (例:
-p 8080:8080) が IPv6 アドレスにバインドされるバグを修正しました (#12292). - リモートの Podman クライアントの
podman infoが Podman サービスにアクセスするためのソケットへの不正なパスを報告するバグを修正しました (#12023).
API
- Libpod Create API を使用して作成されたコンテナで、メモリ制限は設定されているがスワップ制限は設定されていない場合、自動的にスワップ制限が設定されます (#13145)。
- コンテナ用の Compat と Libpod Attach API は、停止したコンテナにアタッチできるようになりました。
- コンテナ用の Compat と Libpod の作成 API が
containers.confのno_hostsオプションを尊重しないバグを修正しました (#13719)。 - Compat Create API で作成されたルートレスコンテナのデフォルトのネットワークモードが
bridgeでないバグを修正しました。 - コンテナ用の Libpod List API が
removingステータスに基づくフィルタリングを許可していなかったバグを修正しました (#13986)。 - Libpod Modify endpoint for Manifests が
tlsVerifyパラメータを考慮しないバグを修正しました。
その他
- 多くの依存関係がプロジェクトから切り離され、Podman バイナリのサイズが大幅に削減されました。
- ConfigMap オブジェクトだけを含む YAML に対して
podman play kubeを使うと(Pod やデプロイは含まれない)、より明確なエラーメッセージが表示されるようになりました。 - Buildah を v1.26.1 に更新しました。
- containers/storageライブラリを v1.40.2 に更新しました。
- containers/imageライブラリを v5.21.1 に更新しました。
- containers/commonライブラリを v0.48.0 に更新しました。
Discussion