Docker 17.06 Community Editionが登場。マルチステージビルド機能が安定版に。コンテナプラットフォームを組み立て可能にする「Moby Project」で開発された初のバージョン
コンテナ型仮想化を実現するDockerの無償提供版「Docker Community Editionの最新版となる「Docker CE 17.06」のリリースが発表されました。
Dockerは3月にリリースされたバージョンからバージョン番号を「年2ケタ.月2ケタ」で示すようになりました。そのため、今月リリースされたDockerにはバージョン番号として「17.06」が用いられることになります。
Docker CE 17.06は、「Moby Project」の下で全体が開発された初めてのバージョンになります。
Moby Projectとは、4月に行われたDockerのイベント「DockerCon 2017」で発表されたプロジェクト。Dockerのようなコンテナプラットフォームをさまざまなコンポーネントに分解。それらを組み合わせることでさまざまな用途に特化したコンテナプラットフォームの開発を可能にする、という取り組み全体を指します。
Moby Projectが発表されたその日のうちに、これまでのDockerの開発は、すべてMoby Projectに置き換えられました。Docker創業者のSolomon Hykes氏は「創業以来、もっとも重要なプロジェクト」だとMoby Projectを説明しています。
コンテナプラットフォームのコンポーネントとは、コンテナランタイムの「containerd」、Linux OSの機能を提供する「LinuxKit」などを指します。
例えば、MacOS用のハイパーバイザ機能を提供する「HyperKit」と、Linux OS機能を提供する「LinuxKit」、コンテナランタイムの「Containerd」を組み合わせ、その上にコンテナでパッケージした「Redis」を実行すれば、MacOS上で実行できるコンパクトなRedis専用実行環境が実現します(下図の左)。
コンテナプラットフォームの構築にこのような柔軟性を持たせるのがMoby Projectの目指すところであり、「Docker CE 17.06」(Docker for MacやDocker for Windows、Docker for AWSなど)はこうしたMoby Projectのコンポーネントが用いられています。
マルチステートビルド機能が安定版に
Docker CE 17.06では、マルチステージビルド(Multi-Stage Builds)機能が安定版になりました。
マルチステージビルドとは、Dockerイメージを作成するためのビルド作業を複数回に分けて行えるようにDockerファイルを記述できる、というものです。
例えば、あるアプリケーションをDockerイメージにビルドしたい場合、最初のビルドは機能の豊富な環境で実行し、そのあとでアプリケーションを実行専用のコンパクトなランタイムとまとめることで、最終的に小さなDockerイメージを得る、といったことが可能になります。
そのほか、これまでデーモンをエンドポイントとしていたMetrics APIのエンドポイントがプラグインにも設定可能になり、またログドライバープラグインが追加されるなどの新機能も追加されています。
あわせて読みたい
AWS CodeBuildとAWS CodeStarがオープンソースの.NET Coreに対応。.NET Core対応言語で開発されたアプリのビルド、継続的デプロイなどが可能に
≪前の記事
Javaをモジュール化する「Project Jigsaw」、コミュニティ再投票でついに可決! ほぼ全会一致で賛成