互換性を維持しない変更、非互換性

Docker Engine の各リリースでは、前バージョンとの下位互換性を保つように努めています。 インターフェースを安定させることは Docker において常に最重要なことです。

どのような場合でも将来的に削除する予定の機能は、前もって 3 リリースの期間は議論を継続し、廃止機能 において文書化しています。

Engine 1.10

1.10 のリリースにおいては、互換性を維持しない変更が 2 つ存在し、Registry と Docker Content Trust に影響を与えています。

Registry

Registry 2.3 においてはイメージマニフェストに対する変更が行われ、これは下位互換性のないものとなりました。 Engine 1.10 によって Registry 2.3 にプッシュされたイメージは、古い Engine バージョンを用いた場合には、ダイジェスト値を用いたプルができません。 docker pull がこの状況において実行されると、以下のようなエラーが返されます。

Error response from daemon: unsupported schema version 2 for tag TAGNAME
(デーモンからのエラー: タグ TAGNAME に対してスキーマバージョン 2 はサポートされません)

Docker Content Trust は、ダイジェスト値によるイメージの取得機能に大きく依存しています。 したがって Engine 1.10 CLI から Registry 2.3 にプッシュされたイメージは、Docker Content Trust を有効にしていても、古いバージョンの Engine CLI (1.10 以前)ではプルすることはできません。

かつての Registry バージョン(2.3 以前)を利用している場合は、Docker Engine CLI がどのバージョンであっても問題ありません。 プッシュやプルでも、また Docker Content Trust を利用するしないに関係なく、思いどおりに動くはずです。

Docker Content Trust

現在の Docker Engine 1.10 よりも古いバージョンでは、認証鍵の委任機能を持っているレポジトリからのイメージ取得ができません。 認証鍵の委任を有効にするためには、手動での操作を必要とします。

参考

Breaking changes and incompatibilities

https://docs.docker.com/engine/breaking_changes/