Docker Engine 18.09リリース! ビルド時間を2〜9.5倍に高速化! #docker
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
今月私たちはDocker Enterprise Enterprise 2.1をリリースしました。これは市場における最先端を行くエンタープライズ向けコンテナプラットフォームです。このプラットフォームは、同じく11月上旬にコミュニティユーザおよび企業ユーザ両者向けにリリースしたDocker Engine 18.09上で構築しました。Docker Engine 18.09は、コンテナパフォーマンスを改善する新たなアーキテクチャと機能を採用することで、業界最先端のコンテナエンジンとして意義深い発展を遂げました。これにより、開発者であるかIT管理者であるか、スタートアップ企業であるか既存の大企業であるかを問わず、あらゆる種類のDockerユーザが恩恵を受けられるでしょう。
containerd上に構築
コミュニティ版Docker Engine (docker-ce)およびエンタープライズ版Docker Engine (docker-ee)はともにcontainerd 1.2を搭載しています。containerdはDocker社がCloud Native Computing Foundation (CNCF)に寄贈し、CNCFの援助を受けつつDocker社がメンテナンスしています。containerdはCNCFの卒業プロジェクトに向けて前進する一方で、多くのプラットフォームやクラウドが主要なコンテナランタイムとして採用しています。
BuildKitの改良
Docker Engine 18.09では、BuildKitを活用するというオプションも追加しました。これは新しいビルドアーキテクチャで、パフォーマンスの向上やストレージ管理および拡張性の強化を行うとともに、新規のすばらしい機能を追加するものです:
パフォーマンスの向上
BuildKitでは並列性とキャッシュモデルを再設計しました。これによりさらなる高速化をはかり、確実性と可搬性を増しました。github.com/moby/moby Dockerfileに対してテストを実行した際、2倍から9.5倍の速さを達成しました。この新たな実装は、次の新しい運用モデルもサポートします:
- ステージの並列ビルド
- 未使用のステージと未使用のコンテキストファイルのスキップ
- ビルド間におけるインクリメンタルなコンテキストの転送
ビルド時の機密情報
DockerfileにDocker Secretを統合することで、機密情報の安全な転送が可能となりました。機密情報は最終的なイメージ内には保存しません。またキャッシュメタデータを使用して機密情報を再構築することを防ぐために、ビルドキャッシュの計算にも含めません。
SSHフォワーディング
鍵データを転送する代わりに、既存のSSHエージェント接続や鍵をビルダーにフォワーディングすることで、プライベートリポジトリに接続します。
ビルドキャッシュの削除と、設定可能なガベージコレクション
ビルドキャッシュをイメージと分けて管理できるようになりました。これにより、新たなコマンド docker builder prune でビルドキャッシュの削除が可能です。ビルドキャッシュの削除のタイミングについてはセキュリティポリシーを設定することも可能です。
拡張性
新しい#syntaxディレクティブを使うことで、Dockerfileの構文解析を拡張することができるようになりました:
# syntax = registry/user/repo:tag
エンタープライズ向けの新機能
このアーキテクチャの転換と整理によって、ライセンスのアクティベーションを行うだけで、コミュニティ版Docker Engineからエンタープライズ版Docker Engineへ簡単にアップグレードできるようにもなりました。現行のコミュニティ版Docker Engineユーザにとって、多くのエンタープライズ向けセキュリティ機能が利用できるようになり、Dockerのエンタープライズ級のサポートおよびメンテナンスポリシーの延長を得られるようになることを意味します。エンタープライズ向けの機能には次のものを含みます:
FIPS 140-2検証
FIPSモードを有効にし、NIST(National Institute of Standards and Technology; 米国国立標準技術研究所)によって検証を受けた暗号化モジュールを活用することができます。これはFISMA、PCI、HIPAA/HITECHをはじめ多くの団体が参照する規則であるため、公的機関や規制のある多くの業界にとって重要です。これはLinuxおよびWindows Server 2016以降のバージョンでサポートしています。
署名済みイメージの強制
Dockerデーモン設定ファイルでDocker Engineの署名検証を有効にすることで、コンテナの統合の際に開発から実行までの間で侵害されていないことを検証することができます。
Docker Engine 18.09は、コミュニティ版およびエンタープライズ版の両方で利用可能です。今後はエンタープライズ版の特長にさらに焦点を当て、コミュニティ版のユーザがエンタープライズ版へのアップグレードを考慮したくなる理由についてブログ記事でお伝えしたいと思います。
Docker Engine 18.09についてもっと学ぶには:
- Docker Engineのウェブサイトを訪れる、またはリリースノートをチェックする
- お好みのOS向けのコミュニティ版Docker Engineをダウンロードし、新機能についてもっと読む
- 最新のウェビナーに登録する: Building a Secure Foundation for Your Containers with Docker Engine - Enterprise