🦭
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