Docker 1.7と新しいツールチェーン,DockerCon 2015でリリース

Docker Incは,同社のコアコンテナランタイムの新バージョンとなるDocker Engine 1.7.0と,それをサポートするツールチェーンの更新版であるDocker Compose 1.3, Docker Swarm 0.3, Docker Machine 0.3をリリースした。ナイトリービルド ‘Docker experimental binary’の試験的機能であるネットワークやプラグインシステムの公開,よりスマートになったDocker Compose,Docker SwarmとApache Mesosの統合,ホストへのコンフィギュレーションオプションの転送やファイルのコピーイン/コピーアウト,ホスト間のファイル転送などを備えたDocker Machine,などが注目点だ。

今回のリリースは,Docker IncのCTOであるSolomon Hykes氏が,DockerCon 2015で発表した。Docker Engineの新リリースで最も重視されたのは安定性と品質だ。Dockerブログには,‘より速く,安定して,メンテナンス性の高い’ものにするため,内部的に多くの部分をリファクタリングしたことが述べられている。Docker Engine 1.7.0では,ZFSイメージによるデータストアがサポートされた他,新たに‘高品質’なネットワーク実装とボリュームシステムが追加されている。

さらにHykes氏は,‘Docker experimental binary’の供用開始を発表した。Dockerの試験的チャネルを通じてナイトリーで更新されるこのビルドでは,一般公開中の(GA)リリースには含まれない‘最先端’の機能にアクセスできる。現在提供されている機能については,Docker資料Webサイトの‘dedicated experimental section’で確認が可能だ。ただし,試験的機能は警告なく追加あるいは廃止される可能性があるため,Dockerブログでは,利用について注意を促している。

試験的ビルドは,ユーザが新機能をいち早く試して,Dockerメンテナにフィードバックを提供するためのものです。このような方法で,新機能を実使用に向けて早期供用することによって,機能設計をより洗練されたものにしたいと思っています。

現在の試験的リリースはネットワークスタックが大幅に変更されている。異なるホスト上のコンテナ間の通信が可能になった他,新たなネットワークCLIによって,ネットワーク設定がより柔軟になった。また,新機能として,Docker Engine用のプラグインシステムも含まれている。最初に提供されるプラグインは“networking”と“volumes”の2つだ。“networking”では,コンテナからWeaveProject Calico,あるいは他のベンダ製品など,ネットワークシステムへの接続が可能になる。“volumes”は,ClusterHQのFlockerのような,ネットワーク接続されたシステムにボリュームを保存することができる。このプラグインシステムは,Glider Labs, ClusterHQ, Weaveとの共同開発だ。

Engineにプラグインシステムが追加されました。最初に提供されるのは,networkingとvolumesの2つです。これによって,サードパーティシステムによる機能追加に柔軟性が生まれます。

DockerオーケストレーションツールのトリオであるCompose, Swarm, Machineは,いずれも大幅にアップデートされている。Dockerでマルチコンテナアプリケーションを定義,実行するツールであるComposeは1.3リリースとなり,変更されたコンテナのみを(すべてではなく)再生成する,よりスマートな‘docker-compose up’コマンドを試験的に提供する他,‘docker run’コマンドと同等の機能を持つ新しい構成オプション,コンテナラベルの内部サポートなどを備えている。

Dockerブログには,Swarmの新しいベータ版であるバージョン0.3について説明されている。Docker Engineのネイティブクラスタリングを提供するこのツールは,主要な新機能を新たに備えることで,“より実用レベルに近い”ものになった。また,Mesosのスケジューラを利用したSwarmの試験的クラスタドライバを通じて,Apache Mesosとのインテグレーションが新たに加えられている。マルチテナンシのサポートも追加されている。複数のSwarmマスタを高い信頼性で動作させることが可能になると同時に,Swarm APIがDocker Engine APIの完全互換により近づいた。また,安定性の面でも多くの改善が行われている。

私たちは今回,完全なテストインフラストラクチャ(インテグレーション,レグレッション,ストレステスト)を構築すると同時に,テストコードのカバレッジをほぼ倍増しました。その結果,バグフィックスの負荷と安定性が改善されています。

Docker Machineは,ローカルマシンとクラウドプロバイダ,プライベートデータセンタを対象として,Dockerホストを生成する(かつ抽象化する)ベータ版ツールである。バージョン0.3には,ホスト上に生成したEngineとSwarmへのコンフィギュレーションオプションの転送,サポート対象オペレーティングシステムの拡大,boot2dockerによるホストのインポートとマイグレーション,ファイルのコピーイン/コピーアウト,ホスト間のファイル転送などの新機能が含まれている。

当社のオーケストレーションツールのトリオであるCompose, Swarm, Machineが大幅に更新され,Composeのよりスマートな“up”コマンド,SwarmへのMesos統合,MachineによるEngineとSwarmの設定機能などが実装されました。

Docker Engineとサポートツールチェーンの新リリースについての詳細は,DockerCon 2015でのSolomon Hykes氏の講演や,一連のDockerブログ記事で紹介されている。