Docker Engine リリースノート
このドキュメントは Docker Engine における最新の変更、追加、既知の問題、バグフィックスについて示します。
メモ
クライアントとコンテナーランタイムは、Docker Engine 18.09 からデーモンとは別パッケージになりました。 ユーザーがインストールおよびアップデートをする際には、同時に 3 つのパッケージを入手して行い、最新のパッチリリースを合わせるようにします。 たとえば Ubuntu においては
sudo apt install docker-ce docker-ce-cli containerd.io
を実行します。 詳しくは、各ディストリビューションにおけるインストール手順を参照してください。
Version 20.10
20.10.14
2022-03-23
Docker Engine の本リリースでは、CVE-2022-24769 において説明されている、コンテナー内のデフォルトの継承機能に関する更新を行っています。
そして同じく説明されているcontainerd.io
ランタイムの最新版も含みます。
issue.
デーモン
- Update the default inheritable capabilities.
Builder
- Update the default inheritable capabilities for containers used during build.
パッケージ
20.10.13
2022-03-10
Docker Engine の本リリースには以下のものが含まれます。
バグフィックス、パッケージ変更、docker scan
コマンドおよびdocker buildx
の更新、Go ランタイムの更新版、containerd.io
ランタイムの更新版です。
このリリースに合わせて Docker Compose V2 の.deb
および.rpm
パッケージも提供します。
これはdocker-compose-plugin
を使ってインストールすることができます。
package.
Builder
- buildx のバンドル版の v0.8.0 への更新。
デーモン
- コンテナー状態を更新する際の競合問題を解消しました。 moby/moby#43166
- デーモンが誤ってファイルロックを行わないように etcd 依存関係を更新しました。 moby/moby#43259
- デフォルトの
net.ipv4.ping_group_range
sysctl を設定する際のユーザー名前空間の検出を修正しました。 moby/moby#43084
ディストリビューション
- イメージプルの際に接続エラーが発生した場合に、イメージマニフェストのダウンロードをリトライするようにしました。 moby/moby#43333
ドキュメント
- コマンドラインリファレンスと API ドキュメントをいくつも修正しました。
ログ処理
- コンテナーにおいて “local” ログドライバーを用いることで、大量のログメッセージが生成される際の OOM を回避しました。 moby/moby#43165
- fluentd ログドライバーを更新し、潜在的にデーモンをクラッシュさせる不具合を解消しました。
また
fluentd-async-connect=true
の利用時であってリモートサーバーに到達できなかった場合に、コンテナーがハングすることを回避しました。 moby/moby#43147
パッケージ
- Docker Compose V2 に対する
.deb
および.rpm
パッケージを提供しました。 Linux においてはdocker-compose-plugin
パッケージを使って Docker Compose v2.3.3 をインストールできます。 これは Docker CLI においてdocker compose
サブコマンドを提供するものです。 Docker Compose プラグインも同時にインストールされます。 これによってdocker-compose
(Docker Compose V1) docker/docker-ce-packaging#638 のとりあえずの実現として、スタンドアロンを実行します。compose-cli-plugin
パッケージは、古い版の Docker CLI であっても CLI プラグイン (Docker CLI 18.09 およびそれ以降) を用いることで利用することもできます。 - 近々リリースされる Ubuntu 22.04 “Jammy Jellyfish” LTS リリース docker/docker-ce-packaging#645 に対するパッケージを提供します。 docker/containerd-packaging#271
docker buildx
を v0.8.0 に更新しました。docker scan
(docker-scan-plugin
) を v0.17.0 に更新しました。- containerd (
containerd.io
パッケージ) を v1.5.10 に更新しました。 - バンドルされている runc のバージョンを v1.0.3 にしました。
- Go 言語ランタイムを Go 1.16.15 に更新しました。
20.10.12
2021-12-13
Docker Engine の本リリースでの変更は、パッケージング部分のみです。
また更新はdocker scan
とdocker buildx
のコマンドに対して行っています。
バージョンが v0.11.0 以前のdocker scan
は Log4j 2 CVE-2021-44228 を検出することはできません。
本リリースにおいては更新版のdocker scan
を提供しています。
これを使えば、イメージのぜい弱性をスキャンすることができます。
メモ
Linux 上における
docker scan
コマンドは、現在のところ x86 プラットフォームにおいてのみサポートしています。 Linux 上におけるそれ以外のハードウェアアーキテクチャーに対しては、まだパッケージ提供は行っていません。
docker scan
の機能は、個別のパッケージとして提供しています。
これはアップデートやインストールの方法によって状況が異なることになります。
最新版の’docker scan’は自動的には更新されていない場合があります。
最新のdocker scan
に更新するには、以下の手順に従ってください。
またその手順に従えば、Docker Engine をアップグレードしなくても、docker scan
パッケージのインストールやアップグレードを行うこともできます。
Ubuntu や Debian のような.deb
をベースとするディストリビューションでは、以下のようにします。
$ apt-get update && apt-get install docker-scan-plugin
CentOS や Fedora のような rpm ベースのディストリビューションでは、以下のようにします。
$ yum install docker-scan-plugin
アップグレードを行ったら、インストールしたdocker scan
が最新であるかどうかを確認します。
$ docker scan --accept-license --version
Version: v0.12.0
Git commit: 1074dd0
Provider: Snyk (1.790.0 (standalone))
CVE-2021-44228 に関するブログ投稿 を読んでください。
docker scan
コマンドによって、イメージのぜい弱性がチェックされることを確認してください。
パッケージ
20.10.11
2021-11-17
重要
Go 1.16 における net/http 変更 に基づいて、環境変数
$HTTP_PROXY
を通じて設定された HTTP プロキシーは、TLS (https://
) 接続には使われなくなりました。https://
URL のリクエスト処理に対しては、環境変数$HTTPS_PROXY
も利用していることを確認してください。HTTP/HTTPS プロキシーの節 を参照して、Docker デーモンがプロキシーサーバーを利用する設定方法について確認してください。
ディストリビューション
- あいまいな OCI マニフェスト解析を取り扱うことにより、CVE-2021-41190 / GHSA-mc8v-mgrf-8f4m を軽減しました。 詳しくは GHSA-xmmx-7jpf-fx42 を参照してください。
Windows
- 読み込み専用属性になっていた panic.log ファイルを修正しました。 moby/moby#42987
パッケージ
- containerd を v1.4.12 にアップデートし、CVE-2021-41190 を軽減しました。
- Go 言語ランタイムを Go 1.16.10 にアップデートしました。
20.10.10
2021-10-25
重要
Go 1.16 における net/http 変更 に基づいて、環境変数
$HTTP_PROXY
を通じて設定された HTTP プロキシーは、TLS (https://
) 接続には使われなくなりました。https://
URL のリクエスト処理に対しては、環境変数$HTTPS_PROXY
も利用していることを確認してください。HTTP/HTTPS プロキシーの節 を参照して、Docker デーモンがプロキシーサーバーを利用する設定方法について確認してください。
Builder
- ARM マシンにおいて BuildKit を利用する場合に、ローカルのイメージキャッシュが見つからないことを利用して、
docker build
修正のため、プラットフォームに応じたマッチングロジックを修正しました。 moby/moby#42954
ランタイム
- Fedora および Ubuntu の最新版においてコンテナー実行をサポートするために、デフォルトの seccomp ポリシー内に
clone3
システムコールへの対応を追加しました。 moby/moby/#42836. - Windows: hcsshim ライブラリを修正し、コンテナーレイヤー内においてスパースファイルの扱いに関するバグを修正しました。 これは Windows における最新の変更において公開されています。 moby/moby#42944.
docker stop
がハングしてしまう状況を修正しました。 moby/moby#42956.
Swarm
- サービス更新の際に、処理失敗があってもロールバックしていなかった点を修正しました。 moby/moby#42875.
パッケージ
- Ubuntu 21.10 “Impish Indri” と Fedora 35 向けにパッケージを追加しました。
docker scan
を v0.9.0 にアップデートしました。- Go 言語ランタイムを Go 1.16.9 にアップデートしました。
20.10.9
2021-10-04
本リリースは、CLI やランタイムにおけるセキュリティフィックスを含んだセキュリティリリースです。 また containerd.io パッケージの更新バージョンも含みます。
重要
Go 1.16 において net/http changes (net/http の変更) があったため、環境変数
$HTTP_PROXY
を使った HTTP プロキシーの設定は、TLS (https://
) 接続においては用いられなくなりました。https://
URL によるリクエストを扱う際には、環境変数$HTTPS_PROXY
の設定も必要になることを忘れないでください。HTTP/HTTPS プロキシーの節 を参照して、プロキシーサーバーを利用する場合の Docker デーモンの設定方法を確認してください。
クライアント
- CVE-2021-41092 デフォルトの auth 設定ファイルに、アドレス項目を持つようにしました。 これにより、資格情報がデフォルトのレジストリに送信されないようにしました。
ランタイム
- CVE-2021-41089
docker cp
の処理時に chroot 内で親ディレクトリを生成するようにしました。 これにより、特別に作成されたコンテナーが、ホストのファイルシステムにおける既存ファイルのパーミッションを変更してしまわないようにしました。 - CVE-2021-41091
ファイルパーミッションを下げることによって、非特権ユーザーにより、
/var/lib/docker
内を検索したり、プログラム実行ができることがないようにしました。
パッケージ
既知の問題
当リリースの static パッケージに含まれる
ctr
バイナリは、スタティックリンクが行われていません。 したがって alpine をベースイメージとする DOcker イメージでは、実行することができません。 これを解消するためには、libc6-compat
パッケージをインストールするか、ctr
バイナリの一つ前のバージョンを利用するようにしてください。 詳しくは、この問題に関連する containerd のチケット containerd/containerd#5824 を参照してください。
- Go 言語のランタイムを Go 1.16.8 に更新しました。 これには CVE-2021-36221 と CVE-2021-39293 への対応が含まれています。
- rpm と deb パッケージにおけるスタティックライブラリを containerd v1.4.11 と runc v1.0.2 に更新しました。 CVE-2021-41103
- rpm と deb パッケージにバンドルする buildx バージョンを v0.6.3 に更新しました。
20.10.8
2021-08-03
重要
Go 1.16 において net/http changes (net/http の変更) があったため、環境変数
$HTTP_PROXY
を使った HTTP プロキシーの設定は、TLS (https://
) 接続においては用いられなくなりました。https://
URL によるリクエストを扱う際には、環境変数$HTTPS_PROXY
の設定も必要になることを忘れないでください。HTTP/HTTPS プロキシーの節 を参照して、プロキシーサーバーを利用する場合の Docker デーモンの設定方法を確認してください。
廃止決定
- 暗号化 TLS の秘密鍵に対するサポートは廃止決定しました。 RFC 1423 において規定されている従来の PEM 暗号化は、設計の段階で安全でないものです。 これは暗号文を認証しないため、攻撃者が平文を解読可能となる padding oracle 攻撃に対してぜい弱です。 暗号化 TLS の秘密鍵に対するサポートは、現在、廃止決定 (deprecated) とされ、今後のリリースにおいて削除される予定です。 docker/cli#3219
- Kubernetes のスタックサポートを廃止決定しました。
Docker CLI の
stack
とcontext
のコマンドにおける Kubernetes サポートは、Compose on Kubernetes が廃止決定されたことに対応して、廃止決定 (deprecated) とされ、今後のリリースにおいて削除される予定です。 docker/cli#3174
クライアント
- Windows における
Invalid standard handle identifier
エラーを修正しました。 docker/cli#3132
Rootless
- SELinux ホストにおける
can't open lock file /run/xtables.lock: Permission denied
エラーを回避するようにしました。 moby/moby#42462 - SELinux の動作中は、パーミッション拒否のエラーを防ぐために overlay2 を無効にしました。 moby/moby#42462
- openSUSE Tumbleweed における
x509: certificate signed by unknown authority
エラーを修正しました。 moby/moby#42462
ランタイム
- シングルアーキテクチャーイメージに対して
--platform
オプションを利用する際に、指定のアーキテクチャーに一致しない場合には、警告を表示するようにしました。 moby/moby#42633 - cgroups v2 の利用時に、
Your kernel does not support swap memory limit
という誤った警告表示を修正しました。 moby/moby#42479 - Windows:
HcsShutdownComputeSystem
がERROR_PROC_NOT_FOUND
エラーを返した際に、コンテナーが止まっていない状況を修正しました。 moby/moby#42613
Swarm
- ノードにおいてロードバランサーの古い IP のクリアの失敗が起きることで、IP アドレスがかぶってしまう可能性を修正しました。 moby/moby#42538
- log broker のデッドロックを修正しました (“dispatcher is stopped”)。 moby/moby#42537
パッケージ
既知の問題
当リリースの static パッケージに含まれる
ctr
バイナリは、スタティックリンクが行われていません。 したがって alpine をベースイメージとする DOcker イメージでは、実行することができません。 これを解消するためには、libc6-compat
パッケージをインストールするか、ctr
バイナリの一つ前のバージョンを利用するようにしてください。 詳しくは、この問題に関連する containerd のチケット containerd/containerd#5824 を参照してください。
- Ubuntu 16.04 “Xenial” と Fedora 32 は EOL になったため、パッケージングからはずしました。 docker/docker-ce-packaging#560
- Go 言語のランタイムを Go 1.16.6 に更新しました。
- rpm と deb パッケージにバンドルする buildx バージョンを v0.6.1 に更新しました。 docker/docker-ce-packaging#562
- rpm と deb パッケージにおけるスタティックライブラリを containerd v1.4.9 と runc v1.0.1 に更新しました。 docker/containerd-packaging#241, docker/containerd-packaging#245, docker/containerd-packaging#247
20.10.7
2021-06-02
クライアント
- 廃止予定の cgroup に対する警告を除きました。 docker/cli#3099 参照。
- Linux や macOS において、シグナル
SIGURG
がコンテナーに送信されないようにしました。 Go 言語のランタイム (Go 1.14 以降) では、プリエンプティブなシステムコールのサポートを阻止するものとして、SIGURG
シグナルが内部的に呼び出されます。 Docker CLI がコンテナーにアタッチされる状況では、そういった阻止がコンテナーに対して転送されます。 これによって Docker CLI がSIGURG
シグナルを無視するような変更につながりました。 docker/cli#3107, moby/moby#42421 参照。
Builder
- BuildKit をバージョン v0.8.3-3-g244e8cde に更新しました。
moby/moby#42448。
- Transform relative mountpoints for exec mounts in the executor to work around a breaking change in runc v1.0.0-rc94 and up. moby/buildkit#2137.
- Add retry on image push 5xx errors. moby/buildkit#2043.
COPY
コマンドにワイルドカードをつけてファイル名変更を行った際に、ビルドキャッシュが不正にならないように修正しました。 この変更によって、そのようなコピーを行った既存のビルドキャッシュは不正なものとなります。 moby/buildkit#2018- マウントを利用した場合にビルドキャッシュが不正にならないように修正しました。 moby/buildkit#2076
- 古いスキーマ 1 イメージを用いていて
FROM
イメージがキャッシュされていない場合に、ビルドに失敗する状況を修正しました。 moby/moby#42382
ログ処理
- Update the hcsshim SDK to make daemon logs on Windows less verbose moby/moby#42292.
Rootless
- Fix capabilities not being honored when an image was built on a daemon with user-namespaces enabled moby/moby#42352.
ネットワーク処理
- Update libnetwork to fix publishing ports on environments with kernel boot
parameter
ipv6.disable=1
, and to fix a deadlock causing internal DNS lookups to fail moby/moby#42413.
Contrib
- Update rootlesskit to v0.14.2 to fix a timeout when starting the userland proxy
with the
slirp4netns
port driver moby/moby#42294. - Fix “Device or resource busy” errors when running docker-in-docker on a rootless daemon moby/moby#42342.
パッケージ
- Update containerd to v1.4.6, runc v1.0.0-rc95 to address CVE-2021-30465 moby/moby#42398, moby/moby#42395, ocker/containerd-packaging#234
- Update containerd to v1.4.5, runc v1.0.0-rc94 moby/moby#42372, moby/moby#42388, docker/containerd-packaging#232.
- Update Docker Scan plugin packages (
docker-scan-plugin
) to v0.8 docker/docker-ce-packaging#545.
20.10.6
2021-04-12
クライアント
- Docker CLI において Apple Silicon (darwin/arm64) をサポートしました。 docker/cli#3042
- config: pre-v1.7.0 の設定ファイル
~/.dockercfg
になっている場合に、書式が古い旨のメッセージを表示します。 docker/cli#3000
Builder
- 古いビルダーが Dockerfile オプションのうちサポートされていないものを、何も表示せずにやり過ごす点を修正し、代わりに BuildKit を有効にする方法を示すことにしました。 moby/moby#42197
ログ処理
- json-file: 散発的に発生する unexpected EOF エラーを修正しました。 moby/moby#42174
ネットワーク処理
- Docker 20.10 における処理後退を修正し、ポートマッピング時に IPv6 アドレスがデフォルトでバインドされなくなるようにしました。 moby/moby#42205
- API レスポンスに含まれない暗黙の IPv6 ポートマッピングを修正しました。 Docker 20.10 よりも前であれば、公開ポートはデフォルトで IPv4、IPv6 のいずれからでもアクセス可能でした。 しかし API には IPv4(0.0.0.0)のマッピング情報しか含まれていませんでした。 moby/moby#42205
- Docker 20.10 における処理後退を修正し、あらゆる状況において docker-proxy が停止しないようにしました。 moby/moby#42205
- コンテナー削除に際して iptables のフォワードルールがクリーンアップされない問題を修正しました。 moby/moby#42205
パッケージ
- 安定版バイナリとして containerd を v1.4.4 に更新しました。 containerd.io パッケージの更新版は、これまで apt/yum リポジトリの対象外になっていました。 CVE-2021-21334 に対する修正を含みます。 moby/moby#42124
- Debian/Raspbian 11 Bullseye、Ubuntu 21.04 Hirsute Hippo、Fedora 34 へのパッケージ対応。 docker/docker-ce-packaging#521、 docker/docker-ce-packaging#522、 docker/docker-ce-packaging#533
- Linux amd64 において
docker-ce-cli
の推奨パッケージにdocker-scan-plugin
を加え、これを通じて Docker スキャン CLI プラグインを提供しました。 docker/docker-ce-packaging#537 - arm64 に対して VPNKit バイナリを含めました。 moby/moby#42141
プラグイン
- Docker プラグインから生成されるプラグインが、Docker の旧バージョンと非互換となってしまう問題を修正しました。 moby/moby#42256
Rootless
- RootlessKit を v0.14.1 に更新しました。 (v0.14.0、 v0.13.2 も参照してください。) moby/moby#42186、 moby/moby#42232
- dockerd-rootless-setuptool.sh: CLI コンテキスト「rootless」を生成しました。 moby/moby#42109
- dockerd-rootless.sh: root としての実行を禁止しました。 moby/moby#42072
- 既存のマウントをバインドマウントする際の「operation not permitted」を修正しました。 moby/moby#42233
- overlay2: 「createDirWithOverlayOpaque(...) ... input/output error」を修正しました。 moby/moby#42235
- overlay2: 「userxattr」オプションに対応しました(カーネル 5.11)。 moby/moby#42168
- btrfs: 非特権ユーザーがサブボリュームを削除できるようにしました(カーネル 4.18 以上)。 moby/moby#42253
- cgroup2: cgroup v2 を試験的機能から格上げしました。 moby/moby#42263
20.10.5
2021-03-02
クライアント
- docker/cli#2960 を元に戻して
docker start --attach
がハングしないようにしました。 また不適当なUnsupported signal: <nil>. Discarding
というメッセージを削除しました。 docker/cli#2987
20.10.4
2021-02-26
Builder
- 空のレイヤーがあるインラインキャッシュのインポートにおいて、間違ったキャッシュがマッチしてしまう誤りを修正しました。 moby/moby#42061
- BuildKit v0.8.2 へのアップデート。moby/moby#42061
- resolver: トークンフェッチ時のキャッシング不備を回避しました。
- fileop: 入力インデックスがキャッシュ不備を起こさないようにチェックサムを修正しました。
- マウント参照に関して出力される参照数の出力不備を修正しました。
(
invalid mutable ref
のエラーを修正しました。) - git: 異なる資格情報を使ってサブモジュールのクローンが可能となるように、メインのリモートアクセスについてのみトークンを設定するようにしました。
- プル処理を行った後に /var/lib/docker/buildkit/content/blobs/sha256 にある blob データが確実に削除されるようにしました。
古い状態を更新するには
builder prune
を実行します。 moby/moby#42065 - 同時並行で行ったプル処理の同期に関して、機能退化を修正しました。」 moby/moby#42049
- libnetwork の状態ファイルの扱いが漏れのないようにしました。 moby/moby#41972
クライアント
- config ファイル不在時に
docker login
が panic となるのを修正しました。 docker/cli#2959 WARNING: Error loading config file: .dockercfg: $HOME is not defined
を修正しました。 docker/cli#2958
ランタイム
- docker info: 対処不要の警告メッセージを除きました。 moby/moby#41958
- XGlobalHeader において親ディレクトリ生成を回避しました。 moby/moby#42017
- 存在しないディレクトリの生成時にはパーミッション 0755 を利用するようにしました。 moby/moby#42017
- イメージ設定内のプラットフォームが不適切である場合には、改めてマニフェストリストを見るようにしました。 moby/moby#42045 moby/moby#41873
- カスタムのデフォルトランタイムを設定した際のデーモンパニック発生を修正しました。 moby/moby#41974
- デーモン設定が空であるときのパニック発生を修正しました。 moby/moby#41976
- 不正な device cgroup rule によりコンテナー起動した際に発生するデーモンパニックを修正しました。 moby/moby#42001
- ユーザー名あるいは UID がマッチしたときの userns-remap オプションを修正しました。 moby/moby#42013
- static: runc バイナリを v1.0.0-rc93 に更新しました。 moby/moby#42014
ログ処理
labels
が設定されていなくてもlabels-regex
の設定を用いることにしました。 moby/moby#42046- 長いログメッセージを適切に扱うようにしました。 これにより non-blocking モードの awslogs において 16 KB 以上のイベントログが分割されないようにしました。 mobymoby#41975
Rootless
- systemd の KillMode を mixed に設定することで、サービスが停止する際にハングしないようにしました。 moby/moby#41956
- dockerd-rootless.sh: タイポ確認を行うようにしました。 moby/moby#42070
- rootlesskit を v0.13.1 に更新し IPv6 アドレスの扱いを修正しました。 moby/moby#42025
- ユーザー空間内部において FIFO の mknod を可能にしました。 moby/moby#41957
セキュリティ
- profiles: seccomp: syscall リストを Linux 5.11 に更新しました。 moby/moby#41971
Swarm
- 再起動時にハートビートが維持されない問題を修正しました。 moby/moby#42060
- タスクが停止してしまう可能性を修正しました。 moby/moby#42060
- Fix
--update-order
and--rollback-order
flags when only--update-order
or--rollback-order
is provided docker/cli#2963 - Fix
docker service rollback
returning a non-zero exit code in some situations docker/cli#2964 - Fix inconsistent progress-bar direction on
docker service rollback
docker/cli#2964
20.10.3
2021-02-01
セキュリティ
- CVE-2021-21285 Docker デーモンがクラッシュしても不正なイメージとならないようにしました。
- CVE-2021-21284 ファイルパーミッションを落とすことで、再マップされたルートが Docker 状態にアクセスできないようにしました。
- BuildKit 利用によるビルド時に AppArmor や SELinux プロファイルが必ず適用されるようにしました。
クライアント
- インポート前にコンテキストをチェックするようにし、抽出(解凍)されたファイルがコンテキスト外に保存されるリスクを軽減しました。
- Windows: カレントディレクトリからバイナリが実行されないようにしました。 docker/cli#2950
20.10.2
2021-01-04
ランタイム
- 再起動ポリシーに従ってコンテナーを復元する際に再起動の失敗が続き、デーモン起動がハングする状態を修正。 moby/moby#41729
- overlay2: data-root が 24 バイト長のときにコンテナーのビルドおよび実行ができなくなるオフバイワン(off-by-one)エラーを修正。 moby/moby#41830
- systemd: シャットダウン時に
sd_notify STOPPING=1
を送信するように。 moby/moby#41832
ネットワーク処理
- IPv6 ポートフォワーディングを修正。 moby/moby#41805 moby/libnetwork#2604
Swarm
replicated-job
とglobal-job
のサービスモードに対するフィルタリングを修正。 moby/moby#41806
パッケージ
- buildx を v0.5.1 にアップデート。 docker/docker-ce-packaging#516
20.10.1
2020-12-14
Builder
- buildkit: v0.8.1 へのアップデート。 多くのバグフィックス。 moby/moby#41793
パッケージ
- 起動順の衝突により Docker が起動できなくなる systemd ユニットへの変更を元に戻す。 docker/docker-ce-packaging#514
- buildx を v0.5.0 にアップデート。 docker/docker-ce-packaging#515
20.10.0
2020-12-08
廃止決定、削除
廃止決定した機能の概要は 廃止となった Engine 機能 のページを参照してください。
- ダイジェスト値によるプルをサポートしていない非準拠 レジストリから
docker pull
を行った際の警告および廃止機能に関するメッセージ。 docker/cli#2872 - Sterner warnings and deprecation notice for unauthenticated tcp access moby/moby#41285
- KernelMemory の廃止決定。
(
docker run --kernel-memory
) moby/moby#41254 docker/cli#2652 aufs
ストレージドライバーの廃止決定。 docker/cli#1484- 外部キーバリューストアを利用したホスト検出とオーバーレイネットワークの廃止決定。 moby/moby#40614 moby/moby#40510
- Dockerfile における古い文法「ENV name value」の廃止決定。
代わりに
ENV name=value
とする。 docker/cli#2743 - API v1.41 またはそれ以上において、廃止決定の「filter」パラメーターを削除。 moby/moby#40491
- Disable distribution manifest v2 schema 1 on push moby/moby#41295
- Remove hack MalformedHostHeaderOverride breaking old docker clients (<= 1.12) in which case, set
DOCKER_API_VERSION
moby/moby#39076 - サブコマンド「docker engine」を削除。 docker/cli#2207
- 「dab」ファイルから試験的な「deploy」を削除。 docker/cli#2216
- 廃止決定した
docker search --automated
と--stars
フラグを削除。 docker/cli#2338 - No longer allow reserved namespaces in engine labels docker/cli#2326
API
- API バージョンの v1.41 へのアップデート。
- メトリックス API に対して「試験的」は不要。 moby/moby#40427
GET /events
now returnsprune
events after pruning resources have completed moby/moby#41259- Prune events are returned for
container
,network
,volume
,image
, andbuilder
, and have areclaimed
attribute, indicating the amount of space reclaimed (in bytes)
- Prune events are returned for
- Add
one-shot
stats option to not prime the stats moby/moby#40478 - info API(
/info
)に OS バージョンを追加。 moby/moby#38349 - docker info に DefaultAddressPools を追加。 moby/moby#40714
- サービス上に PidsLimit に対する API サポートを追加。 moby/moby#39882
Builder
- buildkit,dockerfile: Support for
RUN --mount
options without needing to specify experimental dockerfile#syntax
directive. moby/buildkit#1717 - dockerfile:
ARG
command now supports defining multiple build args on the same line similarly toENV
moby/buildkit#1692 - dockerfile:
--chown
flag inADD
now allows parameter expansion moby/buildkit#1473 - buildkit: Fetching authorization tokens has been moved to client-side (if the client supports it). Passwords do not leak into the build daemon anymore and users can see from build output when credentials or tokens are accessed. moby/buildkit#1660
- buildkit: Connection errors while communicating with the registry for push and pull now trigger a retry moby/buildkit#1791
- buildkit: Git source now supports token authentication via build secrets moby/moby#41234 docker/cli#2656 moby/buildkit#1533
- buildkit: Building from git source now supports forwarding SSH socket for authentication moby/buildkit#1782
- buildkit: Avoid builds that generate excessive logs to cause a crash or slow down the build. Clipping is performed if needed. moby/buildkit#1754
- buildkit: Change default Seccomp profile to the one provided by Docker moby/buildkit#1807
- buildkit: Support for exposing SSH agent socket on Windows has been improved moby/buildkit#1695
- buildkit: Disable truncating by default when using --progress=plain moby/buildkit#1435
- buildkit: Allow better handling client sessions dropping while it is being shared by multiple builds moby/buildkit#1551
- buildkit: secrets: allow providing secrets with env moby/moby#41234 docker/cli#2656 moby/buildkit#1534
- Support
--secret id=foo,env=MY_ENV
as an alternative for storing a secret value to a file. --secret id=GIT_AUTH_TOKEN
will load env if it exists and the file does not.
- Support
- buildkit: Support for mirrors fallbacks, insecure TLS and custom TLS config moby/moby#40814
- buildkit: remotecache: Only visit each item once when walking results moby/moby#41234 moby/buildkit#1577
- Improves performance and CPU use on bigger graphs
- buildkit: Check remote when local image platform doesn’t match moby/moby#40629
- buildkit: image export: Use correct media type when creating new layer blobs moby/moby#41234 moby/buildkit#1541
- buildkit: progressui: fix logs time formatting moby/moby#41234 docker/cli#2656 moby/buildkit#1549
- buildkit: mitigate containerd issue on parallel push moby/moby#41234 moby/buildkit#1548
- buildkit: inline cache: fix handling of duplicate blobs moby/moby#41234 moby/buildkit#1568
- Fixes https://github.com/moby/buildkit/issues/1388 cache-from working unreliably
- Fixes https://github.com/moby/moby/issues/41219 Image built from cached layers is missing data
- Allow ssh:// for remote context URLs moby/moby#40179
- builder: remove legacy build’s session handling (was experimental) moby/moby#39983
クライアント
- Add swarm jobs support to CLI docker/cli#2262
- Add
-a/--all-tags
to docker push docker/cli#2220 - Add support for Kubernetes username/password auth docker/cli#2308
- Add
--pull=missing|always|never
torun
andcreate
commands docker/cli#1498 - Add
--env-file
flag todocker exec
for parsing environment variables from a file docker/cli#2602 - Add shorthand
-n
for--tail
option docker/cli#2646 - Add log-driver and options to service inspect “pretty” format docker/cli#1950
- docker run: specify cgroup namespace mode with
--cgroupns
docker/cli#2024 docker manifest rm
command to remove manifest list draft from local storage docker/cli#2449- Add “context” to “docker version” and “docker info” docker/cli#2500
- Propagate platform flag to container create API docker/cli#2551
- The
docker ps --format
flag now has a.State
placeholder to print the container’s state without additional details about uptime and health check docker/cli#2000 - Add support for docker-compose schema v3.9 docker/cli#2073
- Add support for docker push
--quiet
docker/cli#2197 - Hide flags that are not supported by BuildKit, if BuildKit is enabled docker/cli#2123
- Update flag description for
docker rm -v
to clarify the option only removes anonymous (unnamed) volumes docker/cli#2289 - Improve tasks printing for docker services docker/cli#2341
- docker info: list CLI plugins alphabetically docker/cli#2236
- Fix order of processing of
--label-add/--label-rm
,--container-label-add/--container-label-rm
, and--env-add/--env-rm
flags ondocker service update
to allow replacing existing values docker/cli#2668 - Fix
docker rm --force
returning a non-zero exit code if one or more containers did not exist docker/cli#2678 - Improve memory stats display by using
total_inactive_file
instead ofcache
docker/cli#2415 - Mitigate against YAML files that has excessive aliasing docker/cli#2117
- Allow using advanced syntax when setting a config or secret with only the source field docker/cli#2243
- Fix reading config files containing
username
andpassword
auth even ifauth
is empty docker/cli#2122 - docker cp: prevent NPE when failing to stat destination docker/cli#2221
- config: preserve ownership and permissions on configfile docker/cli#2228
ログ処理
- Support reading
docker logs
with all logging drivers (best effort) moby/moby#40543 - Add
splunk-index-acknowledgment
log option to work with Splunk HECs with index acknowledgment enabled moby/moby#39987 - Add partial metadata to journald logs moby/moby#41407
- Reduce allocations for logfile reader moby/moby#40796
- Fluentd: add fluentd-async, fluentd-request-ack, and deprecate fluentd-async-connect moby/moby#39086
ランタイム
- Support cgroup2 moby/moby#40174 moby/moby#40657 moby/moby#40662
- cgroup2: use “systemd” cgroup driver by default when available moby/moby#40846
- new storage driver: fuse-overlayfs moby/moby#40483
- Update containerd binary to v1.4.3 moby/moby#41732
docker push
now defaults tolatest
tag instead of all tags moby/moby#40302- Added ability to change the number of reconnect attempts during connection loss while pulling an image by adding max-download-attempts to the config file moby/moby#39949
- Add support for containerd v2 shim by using the now default
io.containerd.runc.v2
runtime moby/moby#41182 - cgroup v1: change the default runtime to io.containerd.runc.v2. Requires containerd v1.3.0 or later. v1.3.5 or later is recommended moby/moby#41210
- Start containers in their own cgroup namespaces moby/moby#38377
- Enable DNS Lookups for CIFS Volumes moby/moby#39250
- Use MemAvailable instead of MemFree to estimate actual available memory moby/moby#39481
- The
--device
flag indocker run
will now be honored when the container is started in privileged mode moby/moby#40291 - Enforce reserved internal labels moby/moby#40394
- Raise minimum memory limit to 6M, to account for higher memory use by runtimes during container startup moby/moby#41168
- Add support for
CAP_PERFMON
,CAP_BPF
, andCAP_CHECKPOINT_RESTORE
on supported kernels moby/moby#41460 - vendor runc v1.0.0-rc92 moby/moby#41344 moby/moby#41317
- info: add warnings about missing blkio cgroup support moby/moby#41083
- Accept platform spec on container create moby/moby#40725
- Fix handling of looking up user- and group-names with spaces moby/moby#41377
ネットワーク処理
- Support host.docker.internal in dockerd on Linux moby/moby#40007
- Include IPv6 address of linked containers in /etc/hosts moby/moby#39837
--ip6tables
enables IPv6 iptables rules (only if experimental) moby/moby#41622- Add alias for hostname if hostname != container name moby/moby#39204
- Better selection of DNS server (with systemd) moby/moby#41022
- Add docker interfaces to firewalld docker zone moby/moby#41189 moby/libnetwork#2548
- Fixes DNS issue on CentOS8 docker/for-linux#957
- Fixes Port Forwarding on RHEL 8 with Firewalld running with FirewallBackend=nftables moby/libnetwork#2496
- Fix an issue reporting ‘failed to get network during CreateEndpoint’ moby/moby#41189 moby/libnetwork#2554
- Log error instead of disabling IPv6 router advertisement failed moby/moby#41189 moby/libnetwork#2563
- No longer ignore
--default-address-pool
option in certain cases moby/moby#40711 - Produce an error with invalid address pool moby/moby#40808 moby/libnetwork#2538
- Fix
DOCKER-USER
chain not created when IPTableEnable=false moby/moby#40808 moby/libnetwork#2471 - Fix panic on startup in systemd environments moby/moby#40808 moby/libnetwork#2544
- Fix issue preventing containers to communicate over macvlan internal network moby/moby#40596 moby/libnetwork#2407
- Fix InhibitIPv4 nil panic moby/moby#40596
- Fix VFP leak in Windows overlay network deletion moby/moby#40596 moby/libnetwork#2524
パッケージ
- docker.service: Add multi-user.target to After= in unit file moby/moby#41297
- docker.service: Allow socket activation moby/moby#37470
- seccomp: Remove dependency in dockerd on libseccomp moby/moby#41395
Rootless
- rootless: 試験的機能から格上げ。 moby/moby#40759
- dockerd-rootless-setuptool.sh 追加。 moby/moby#40950
--exec-opt native.cgroupdriver=systemd
のサポート。 moby/moby#40486
セキュリティ
- Fix CVE-2019-14271 loading of nsswitch based config inside chroot under Glibc moby/moby#39612
- seccomp: Whitelist
clock_adjtime
.CAP_SYS_TIME
is still required for time adjustment moby/moby#40929 - seccomp: Add openat2 and faccessat2 to default seccomp profile moby/moby#41353
- seccomp: allow ‘rseq’ syscall in default seccomp profile moby/moby#41158
- seccomp: allow syscall membarrier moby/moby#40731
- seccomp: whitelist io-uring related system calls moby/moby#39415
- Add default sysctls to allow ping sockets and privileged ports with no capabilities moby/moby#41030
- Fix seccomp profile for clone syscall moby/moby#39308
Swarm
- Swarm ジョブへのサポートを追加。 moby/moby#40307
- stack/service コマンドに対してケーパビリティーのサポートを追加。 docker/cli#2687 docker/cli#2709 moby/moby#39173 moby/moby#41249
- Add support for sending down service Running and Desired task counts moby/moby#39231
- service:
--mount type=bind,bind-nonrecursive
のサポート。 moby/moby#38788 - Support ulimits on Swarm services. moby/moby#41284 docker/cli#2712
- Fixed an issue where service logs could leak goroutines on the worker moby/moby#40426