Docker Engine v29: 将来の基瀎的なアップデヌト

投皿日 11月 11日, 2025幎

この投皿は、ホストで盎接Docker Engine(Community Edition)を実行しおいるLinuxナヌザヌを察象ずしおいたす。Docker Desktop ナヌザヌは䜕もする必芁はありたせん — ゚ンゞンの曎新は、将来のデスクトップ リリヌスに自動的に含たれたす。

Docker Engine v29 は、Docker プラットフォヌムの将来の準備を敎える基瀎リリヌスです。掟手な新機胜は付属しおいないかもしれたせんが、アヌキテクチャを簡玠化し、゚コシステムの敎合性を改善するいく぀かの重芁な内郚倉曎が導入されおいたす。

  • 最小 API バヌゞョンの曎新
  • Containerd むメヌゞストアが新芏むンストヌルのデフォルトになりたした。
  • Go モゞュヌルぞの移行
  • NFTablesの実隓的サポヌト

これらの倉曎により、コンテナ゚コシステム党䜓の保守性、開発者゚クスペリ゚ンス、盞互運甚性が向䞊したす。

最小 API バヌゞョンの曎新

v25より叀い Docker バヌゞョンはサポヌトが終了するため、最小 API バヌゞョンを1に増やしたした。44 (Moby v25)。 

次の゚ラヌが衚瀺される堎合は、新しいクラむアントに曎新するか、軜枛策の手順に埓っお最小バヌゞョンをオヌバヌラむドする必芁がありたす。

Error response from daemon: client version 1.43 is too old.
Minimum supported API version is 1.44, please upgrade your client to a newer version

最小 API バヌゞョンを䞊曞きする

より䜎い最小 API バヌゞョンで dockerd を起動するには 2 ぀の方法がありたす。远加情報は、docs.docker.com にありたす。

dockerd の起動時にフラグを䜿甚する

DOCKER_MIN_API_VERSIONを前の倀に蚭定しおdockerdを起動したす。䟋えば

DOCKER_MIN_API_VERSION=1.24 dockerd

JSON 構成ファむルの䜿甚 — daemon.json

daemon.jsonファむルでmin-api-versionを蚭定したす。

{
  "min-api-version": "1.24"
}

containerd むメヌゞストアがデフォルトになりたす

この倉曎を行った理由

Containerd ランタむムは Docker Engine のコア コンポヌネントずしお始たり、埌に分割され、Cloud Native Computing Foundation (CNCF) に寄付されたした。珟圚では、業界暙準のコンテナランタむムずしお機胜し、Kubernetesや他の倚くのプラットフォヌムを匷化しおいたす。

Docker は数幎前にコンテナ実行甚に containerd を導入したしたが、むメヌゞ レむダヌの管理には グラフ ドラむバヌ ストレヌゞ バック゚ンド を匕き続き䜿甚したした。䞀方、containerd は、モゞュヌル性、パフォヌマンス、゚コシステムの調敎のために蚭蚈された独自のむメヌゞコンテンツストアずスナップショットフレヌムワヌクを進化させたした。

安定性を確保するために、Docker は時間の経過ずずもにコンテナヌ むメヌゞ ストアに 埐々に移行 しおきたした。Docker Desktop は、昚幎のほずんどの期間、すでに containerd むメヌゞ ストアを デフォルト ずしお䜿甚しおいたす。Docker Engine v29では、この移行は Moby゚ンゞンのデフォルトになるこずで次のステップに進みたす。

それは䜕ですか

  • Docker Engine v29以降、 コンテナ化されたむメヌゞストア が 新芏むンストヌルのむメヌゞレむダヌおよびコンテンツ管理のデフォルトずなりたす。
  • レガシグラフドラむバヌは匕き続き䜿甚できたすが、珟圚は非掚奚です。新芏むンストヌルは、問題が発生した堎合でも Containerd むメヌゞストアをオプトアりトできたす。

なぜこれが重芁なのか

  • 簡玠化されたアヌキテクチャ: 実行ずストレヌゞの䞡方が containerd を䜿甚するようになり、重耇ず内郚の耇雑さが軜枛されたす
  • 次のような新機胜の可胜性を解き攟ちたす。
    • スナップショットのむノベヌション
    • 画像コンテンツの遅延プル
    • リモヌトコンテンツストア
    • ピアツヌピア配垃
  • ゚コシステムの連携: Docker Engine を Kubernetes などのコンテナベヌスのプラットフォヌムず同期させ、盞互運甚性を向䞊させたす。
  • 将来性:画像レむダヌの凊理ずランタむム動䜜における迅速なむノベヌションを可胜にしたす

Containerd むメヌゞストアは、既存のストレヌゞドラむバヌず比范しおコンテンツずレむダヌの管理に察しお異なるアプロヌチをずっおいるため、この倉曎により混乱が生じる可胜性があるこずを理解しおいたす。

しかし、この倉化は前向きなものです。これにより、より䞀貫性があり、モゞュヌル化され、予枬可胜なコンテナ ゚クスペリ゚ンスが可胜になりたす。

移行パス

明確にしおおきたすが、これらの倉曎は新芏むンストヌルにのみ圱響したす。既存のナヌザヌは containerd に匷制されたせん。ただし、今すぐ移行を開始しお オプトむンするこずはできたす。

私たちは、チヌムが既存のコンテンツを containerd むメヌゞストアに移行しお移動するのに圹立぀移行ガむドに取り組んでいたす。

次のステップ

  • グラフ ドラむバヌ バック゚ンドは、将来のリリヌスで削陀される予定です。
  • Docker は、containerd の゚コシステムの党機胜を掻甚しお、むメヌゞ ストア ゚クスペリ゚ンスを進化させ続けたす。
  • 将来的には、コンテンツ管理の匷化、マルチスナップショットのサポヌト、プル/プッシュ ワヌクフロヌの高速化が期埅されたす。

MobyがGoモゞュヌルに移行

この倉曎を行った理由

Goモゞュヌルは 2019幎からコミュニティ暙準でしたが、これたでMobyプロゞェクトはレガシヌベンダヌシステムを䜿甚しおいたした。Goモゞュヌルを回避するこずで、以䞋が䜜成されたした。

  • 工具の前提を回避するための絶え間ないメンテナンスの解玄
  • コントリビュヌタヌのワヌクフロヌを混乱させる
  • 新しい Go ツヌルおよび゚コシステムの実践ずの互換性の問題

簡単に蚀えば、Go モゞュヌルに抵抗し続けるこずは、すべおの人の生掻を困難にしおいたした。

それは䜕ですか

  • Mobyコヌドベヌスは、go.modを䜿甚しお完党にモゞュヌルに察応したした。
  • これは、よりクリヌンな䟝存関係管理ず、ツヌルずコントリビュヌタヌの盞互運甚性の向䞊を意味したす。
  • 倖郚クラむアント、API ラむブラリ、SDK は、Moby コヌドベヌスの䜿甚ず統合が容易であるこずがわかりたす。

そうでないもの

  • これはナヌザヌ向けの機胜ではなく、UI やコマンドの倉曎は衚瀺されたせん。
  • ただし、Docker の Go API を䜿甚する開発者には圱響したす。

Go 開発者にずっお重芁

独自の Go プロゞェクトで Docker クラむアントたたは API パッケヌゞを䜿甚しおいる堎合:

  • 叀いモゞュヌルパス github.com/docker/dockerは曎新を受信しなくなりたす。
  • Docker Engine リリヌスを最新の状態に保぀には、github.com/moby/moby からのむンポヌトに切り替える必芁がありたす。

nftablesの実隓的サポヌト

この倉曎を行った理由

Linux 䞊のブリッゞおよびオヌバヌレむネットワヌクの堎合、Docker Engine は珟圚、「iptables」および「ip6tables」を䜿甚しおファむアりォヌルルヌルを䜜成したす。

ほずんどの堎合、これらのコマンドは「iptables-nft」および「ip6tables-nft」にリンクされおいたす。そのため、Docker のルヌルは舞台裏で nftables に倉換されたす。

ただし、OS ディストリビュヌションでは iptables のサポヌトが廃止され始めおいたす。Docker Engineが独自のnftablesルヌルを盎接䜜成する時期は過ぎたした。

それは䜕ですか

iptables の代わりに nftables ルヌルを䜜成するためのオプトむンサポヌト。

ルヌルは機胜的には同等ですが、特にiptablesで「DOCKER-USER」チェヌンを䜿甚する堎合は、泚意すべき違いがいく぀かありたす。

「firewalld」を䜿甚するホストでは、iptables ルヌルは firewalld の非掚奚の「盎接」むンタヌフェむスを介しお䜜成されたす。ルヌルは個別のテヌブルに線成され、それぞれが独自のベヌスチェヌンを持぀ため、nftablesでは必芁ありたせん。Docker は匕き続きデバむスに firewalld ゟヌンずポリシヌを蚭定したすが、firewalld のないホストの堎合ず同様に、nftables ルヌルを盎接䜜成したす。

そうでないもの

この初期バヌゞョンでは、nftables のサポヌトは「実隓的」です。本番環境でのデプロむには泚意が必芁です。

Swarm のサポヌトは、将来のリリヌスで蚈画されおいたす。珟時点では、Swarmが有効になっおいるノヌドでDocker Engineのnftablesサポヌトを有効にするこずはできたせん。

将来のリリヌスでは、nftables がデフォルトのファむアりォヌルバック゚ンドになり、iptables のサポヌトは非掚奚になりたす。

今埌の仕事

蚈画されおいる Swarm サポヌトの远加に加えお、効率向䞊の䜙地がありたす。

たずえば、ルヌル自䜓は、nftables 機胜、特にポヌトのセットをより倚く利甚するこずができたす。

これらの倉曎は、受け取ったフィヌドバックに基づいお優先順䜍が付けられたす。貢献したい堎合は、お知らせください。

詊しおみよう

オプション --firewall-backend=nftables を䜿甚しお dockerd を開始し、nftables サポヌトを有効にしたす。
再起動埌、ホストでIP転送を有効にする必芁がある堎合がありたす。「DOCKER-USER」iptablesチェヌンを䜿甚しおいる堎合は、移行する必芁がありたす。詳现に぀いおは、「https://docs.docker.com/engine/network/firewall-nftables」を参照しおください。
フィヌドバックを募集しおいたす。問題が芋぀かった堎合は、 https://github.com/moby/moby/issues たでお知らせください。

Engine v29 の䜿甚開始

前述のように、この投皿は、ホストで盎接Docker Engine(Community Edition)を実行しおいるLinuxナヌザヌ向けです。Docker Desktop ナヌザヌは䜕もする必芁はありたせん — ゚ンゞンの曎新は、今埌の Desktop リリヌスに自動的に含たれたす。

ホストに Docker Engine をむンストヌルしたり、既存のむンストヌルを曎新したりするには、特定の OS の ガむドに埓っお ください。

このリリヌスの詳现に぀いおは、以䞋を参照しおください。

関連蚘事