🦭

Podman v4.1.0 リリースノート

2022/09/30に公開

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

https://github.com/containers/podman/releases/tag/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 mountpodman volume unmount が追加されました。これらにより、Podman が管理する名前付きボリュームを外部のコンテナからマウントしたりアクセスしたりできるようになります (#12768)。
  • podman machine で作成された VM は自動的にホストの $HOME を VM にマウントし、ホストからコンテナへボリュームをマウントできるようになりました。
  • podman container checkpointpodman container restore オプションは、OCI イメージへのチェックポイントと OCI イメージからのリストアをサポートするようになりました。これにより、チェックポイントを標準的なイメージレジストリ経由で配布できるようになりました。
  • podman play kube コマンドは、fieldRefresourceFieldRef ソースを使用して指定される環境変数をサポートするようになりました。
  • 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 createpodman run コマンドの --mount オプションは、 volume-opt パラメータを使って作成する名前付きボリュームのオプションを設定できるようになりました (#13387)。
  • podman createpodman run コマンドの --mount オプションは CSV フォーマットでパラメータを渡せるようになりました (#13922)。
  • podman createpodman run コマンドの --userns オプションは、新しいオプションである nomap をサポートするようになりました。これは (rootless コンテナに対してのみ) コンテナを起動したユーザーの UID をコンテナにマッピングしないので、セキュリティが強化されます。
  • podman import コマンドは 3 つの新しいオプション、 --arch, --os, --variant をサポートし、インポートされたイメージがどのシステム用にビルドされたかを指定できるようになりました。
  • podman inspect コマンドは、podman run, podman create, podman pod create--net ns: オプションをつけて事前に設定されたネットワーク名前空間に参加したコンテナのネットワーク設定の情報を含めることができるようになりました。
  • podman runpodman create コマンドは新しいオプション --chrootdirs をサポートしました。これは Podman が管理するコンテナ固有のファイル (/etc/hosts, /etc/resolv.conf, etc) をコンテナ内にマウントする追加の場所を指定します (#12961).
  • podman runpodman 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 createpodman 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 connectpodman 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.confno_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