Docker、WindowsとLinuxに両対応する「マルチアーキテクチャイメージ」の仕組みを開発中、デモも披露

2016年1月14日

マイクロソフトが開発中のWindows Server 2016にはDockerの機能が組み込まれ、Windows上でコンテナ型仮想化を実現する予定です。

しかしWindowsとLinuxのあいだにアプリケーションの互換性がないのと同様に、Windows用のDockerイメージとLinux用のDockerイメージにも互換性はありません。

例えば、Docker HubにNoSQLデータベースであるRedisのDockerイメージがあるとして、それがLinux用にビルドされたDockerイメージの場合には、Windows ServerのDockerでそれを実行することはできません。

これまでDockerが対応しているOSはLinuxしかなかったため、DockerイメージがどのOSに対応しているのかを気にする必要はありませんでした。しかしWindows Server版Dockerが登場することで、その状況が変わろうとしているのです。

Multi-architecture images(マルチアーキテクチャイメージ)

この新しい状況で発生する不便さを解決するために開発が進んでいるのが「Multi-architecture images」(マルチアーキテクチャイメージ)です。

Multi-architecture imagesは、Windows用とLinux用のそれぞれのイメージファイルを用意しておき、利用されるイメージはターゲットOSによって自動的に切り替わる、という仕組み。ARMなどプロセッサの違いにも対応します。

昨年11月にバルセロナで行われたイベント「DockerCon Europe 2015」のセッションで、マイクロソフトとDocker社が協同で行ったセッション「Windows Server Containers - How we got here and architecture deep dive」において、Docker社のシニアエンジニアリングマネジャーのArnaud Porterie氏がその取り組みについて説明しています。

fig

Arnaud氏の説明によると、例えばRedisという単一の名前で新しくマニフェストファイルが用意されます。

そのマニフェストファイルはRedis for WindowsとRedis for LinuxなどのDockerイメージへの参照を備えており、Dockerエンジンによって実行されるものが決定されるとのこと。

これの優れた点は、WindowsでもLinuxでもOSの違いを気にすることなく同一の設定で同じアプリケーションが実行される、という点です。

LinuxとWindows Serverを同一のクラスタに設定してデモ

Arnaud氏は実際にこの仕組みが動いている様子をデモで紹介しました。

まず、Azure内のWindows版DockerとDigitalOcean内のLinux版Dockerが、1つのSwarmクラスタとして設定されています。

fig

Swarmマスターから、クラスタ内のLinux OSだけを対象にしてredisを起動するように命令すると、RedisがLinuxのホストで立ち上がります。

fig

この命令のLinux OSの指定の部分を「Windows」に書き換えて実行してみると対象OSが切り替わり、今度はWindows ServerでRedisが起動しました。Windows ServerのコマンドラインでDocker psを実行すると、1秒以内にredisが起動しているのが分かります。

fig

下記が公開されているセッション「Windows Server Containers - How we got here and architecture deep dive」の動画です。Multi-architecture imagesの説明は26分頃から。デモは35分頃からです。

あわせて読みたい

Docker Linux Windows コンテナ型仮想化 仮想化




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本