2016年11月18日金曜日

「Qt Visual Studio Tools 2.0」リリース、Visual StudioでQtによる開発が可能に

 The Qt Companyは11月11日、Visual StudioでのQtを使った開発をサポートする拡張機能「Qt Visual Studio Tools 2.0」を公開した。

 Qt Visual Studio Toolsは、米Microsoftの開発環境「Visual Studio」にQt開発ツールを統合するもの。ウィザード形式でQtプロジェクトやクラスを作成でき、リソースの管理機能や各種ドキュメントなども含まれている。これによってQt関連のビルドステップやツールを意識することなく開発ができるという。また、「.pro」形式のQtプロジェクトファイルと「.pri」形式のプロジェクトのインポートやエクスポートも可能。ライセンスはGPLv3。

 今回リリースされたQt Visual Studio Tools 2.0は主として、古いVisual Studioのアドイン機能(Qt Visual Studio AddInn)を新しいバージョンに移行するのが目的のリリース。Visual Studio 2010以降、MicrosoftはAddInを実装するAPIを非推奨としており、Visual Studio 2015でこの機能を削除している。

 合わせてコードのリファクタリングを進め、ビルドシステムのアップデートやコードのクリーンナップも進めた。Visual Studio拡張システムをベースとした新しいウィザードシステムも導入した。

 新たに「Visual Studio 2013」及び「Visual Studio 2015」もサポートした。アドインの商用バージョンを無料版にマージし、Qt Quick(QML)もサポートした。Qt Type C++ Debugger Visualizers、QMLのハイライト機能が利用できるようになった。

 Qt Visual Studio ToolsはQtのWebサイトからダウンロードできる。また、MicrosoftのVisual Studio Galleryからも入手できるようになった。

Qt Visual Studio Tools(2013)
https://visualstudiogallery.msdn.microsoft.com/a2649628-f656-4499-aebb-7076c2b239ed

Qt Visual Studio Tools(2015)
https://visualstudiogallery.msdn.microsoft.com/d0b8e662-b58f-4a93-838e-02eafe52cc0b

広告見れば固定・携帯への通話が無料に 「LINE Out Free」スタート

 LINEは、コミュニケーションアプリ「LINE」と連携した通話機能「LINE Out」でこのほど、動画広告を視聴すれば、固定・携帯電話と無料で通話できる「LINE Out Free」の提供を始めた。国内の固定電話は1回3分まで、携帯電話は1回1分まで、1日最大5回まで利用できる。

 LINE Outは、LINEから利用できる通話機能。発信時に「LINE Out free」を選んだ状態で通話すると、広告動画が流れ、その後無料通話が始まる。

 日本だけでなく米国や中国、英国などにも発信可能。1回当たりの無料通話時間は国によって異なり、日本の固定電話が3分、携帯電話が1分まで。通話終了20秒前に「ピー」音が流れる。

Mozilla Launches Firefox Focus, a Stripped-Down Private Browser For iOS

Mozilla today launched a new browser for iOS. In addition to Firefox, the company now also offers Firefox Focus, a browser dedicated to user privacy that by default blocks many web trackers, including analytics, social, and advertising. You can download the new app now from Apple's App Store. If you're getting a huge feeling of deja vu, that's because in December 2015, Mozilla launched Focus by Firefox, a content blocker for iOS. The company has now rebranded the app as Firefox Focus, and it serves two purposes. The content blocker, which can still be used with Safari, remains unchanged. The basic browser, which can be used in conjunction with Firefox for iOS, is new. Firefox Focus is basically just an iOS web view with tracking protection. If you shut it down, or iOS shuts it down while it's in the background, the session is lost. There's also an erase button if you want to wipe your session sooner. But those are really the only features -- there's no history, menus, or even tabs.

2016年11月17日木曜日

Googleの「モバイルフレンドリーテスト」でWebページのスマホ対応度を調べる

スマートフォン全盛の昨今、Webサイトのモバイル対応はもはや必須ともいえる。しかし、PC向けサイトをモバイルに対応させるのは総じて簡単ではない。

 まずは現状で、モバイルデバイスで表示した際にどのような問題が生じているのか、確認するのが第一歩だろう。

 そのためのテストツール/サービスの中でも、特に手っ取り早く、かつ無償で簡単にテストできるのが、Googleの「モバイルフレンドリーテスト」だ。Webブラウザからテスト対象ページのURLを指定するだけで、モバイル対応上の問題点を提示してくれる。

 このモバイルフレンドリーテストには現在、次の2種類が存在する。

 新版は特にスマートフォンからテストしやすい一方で、旧版の方が具体的な修正方法を確認しやすい。執筆時点でまだ旧版は利用できるので、以下では旧版の使い方を説明する。

 
Googleの「モバイルフレンドリーテスト」でモバイル対応度を調べる(1/2
モバイルフレンドリーテスト旧版を開いたところ。ここではモバイル非対応のWebページをテストしてみる。
  1テストしたいWebページのURLを入力する。
  2[分析]ボタンを押すとプログレスバーが表示されて1の分析が始まる。完了するまで数十秒〜数分待つ。

 
Googleの「モバイルフレンドリーテスト」でモバイル対応度を調べる(2/2
分析結果が表示されたところ。エミュレーションによるスマートフォンでの表示例も併せて提示される。
  3分析結果の概要。モバイルに対応していれば、「問題ありません。〜」と表示される。
  4モバイル非対応と判定された原因。
  5robots.txtによって一部のファイルなどがブロックされていると、このように警告が表示される。
  6[次へ]ボタンをクリックすると、モバイル対応にするための方法が記されたGoogleのドキュメントページが表示される。
  7このあたりに表示される「Pagespeed Insights」リンクをクリックすると、4の詳細かつ具体的な説明が表示される。→[A]


 もっと具体的に問題点を知りたいなら、上記画面の7をクリックして、同じくGoogleのサービス「PageSpeed Insights」を呼び出す。これはページ表示を遅くしている原因を分析するためのツールだが、モバイルでの表示上の問題点も指摘してくれる。

[A]

 
Googleの「PageSpeed Insights」で修正すべき箇所やその方法を確認する(1/2
これはモバイルフレンドリーテストから呼び出されたPageSpeed Insightsが、対象ページを分析した後に表示した結果。
  1[モバイル]タブを選ぶ。
  2モバイルでの表示にどれくらい対応しているかを表しているスコア。100点に近いほどモバイルによく対応していることを表している。
  3修正すべき箇所。[修正方法の表示]をクリックすると、さらに詳細が表示される。→[B]
  4修正した方がよいとされる箇所。

[B]

 
Googleの「PageSpeed Insights」で修正すべき箇所やその方法を確認する(2/2
具体的な修正方法が表示されたところ。
  5各項目にある[スクリーンショットを見る]というリンクをクリックすると、その項目が画面上のどの部分を指しているのか、赤線の枠で示される。


 以上のツールやドキュメントで、モバイル表示上の全ての問題が解決できるわけではない。とはいえ、まず問題点を明らかにして対処方針を決めていくには十分に有用だろう。

■関連リンク

 

Google、Microsoftの「.NET Foundation」に参加

 米Microsoft1116日(現地時間)、ニューヨークで開催の「Connect(); // 2016」で、.NET Foundationに米Googleがメンバーとして加わったと発表した。

 .NET Foundationは、Microsoft2014年の開発者会議「Build 2014」で発表した、.NET関連のオープンソース化されたリソースを管理するための団体。Microsoftは「.NET Core」や「Visual Basic」「C#」のコンパイラなどを提供している。

 Googleは過去数年にわたり、200以上の同社のクラウドサービスを.NETライブラリに提供してきた。最近では、Visual StudioPowerShell向けにネイティブなGCPサポートを構築している。

 Google.NET Foundationのコミュニティの中心的存在である「Technical Steering Group」の一員となる。同グループの既存のメンバーは、MicrosoftRed HatSamsung ElecronicsUnityJetBrainsだ。

 

ユーザー情報の収集は「手違い」、中国企業が経緯を説明

 米国で販売されていたAndroid端末からユーザーの個人情報が許可なく中国のサーバに送信されていたと伝えられた問題で、関与を名指しされた中国企業が1116日、声明を発表して問題が起きた経緯を説明した。

 米モバイルセキュリティ企業のKryptowireによると、米Amazonなどで販売されていたBLU Products製の端末などのファームウェアで、ユーザーが送受信したSMSの本文や連絡先、通話履歴といった情報が収集され、上海にあるサーバに定期的に自動送信されていたという。

 こうした監視活動は商用のFirmware Over The AirFOTA)を使って行われ、Shanghai Adups Technology(以下、Adups)という企業が管理していたとKryptowireは伝えていた。

 Adupsは各国の端末メーカーやモバイル通信事業者、半導体メーカー向けにFOTAアップデートサービスを手掛ける企業。Adupsの声明によると、適正なアップデートとサービスを提供する目的で、携帯電話やメッセージからモデル情報とデバイスの状況、アプリケーション情報、bin/xbin情報およびサマリー情報を収集し、その情報を使って適切なアップデートとサービスが正しいデバイスに送られていることを確認しているという。

 
Adupsの声明

 しかし、「迷惑メールや電話を排除したいという顧客からの要望」に応えて、ADUPS FOTAアプリケーションでそうしたメールや電話を洗い出す機能を開発。収集したメールの中からバックエンドのデータ分析を使って迷惑メールを見つけ出し、携帯電話エクスペリエンスの向上に役立てているという。

 ところが20166月、一部のBlu Products製端末に適用されたADUPS FOTAのバージョンに、他の顧客の要望で実装された迷惑メールと通話の特定機能が手違いによって導入されていたことが判明。Bluからの抗議を受けて直ちにこの機能は無効化したといい、Blu端末から収集したメールや通話記録などの情報は削除したとAdupsは説明している。

 
Blu Productsによれば「R1 HD」「Energy X Plus 2」「Studio Touch」「Advance 4.0 L2」「Neo XL」「Energy Diamond」の6機種に問題の機能が搭載されていた

 「Bluのファームウェアの更新版では迷惑メールや通話の特定が行われていないことを確認するため、AdupsBluGoogleと協力してきた」と同社は述べ、パートナーやユーザーに謝罪している。

 

MicrosoftがThe Linux Foundationのプラチナメンバーに

 オープンソースマネジメントを促進する非営利団体、The Linux Foundationは16日(現地時間)、Microsoftがプラチナメンバーになったことを発表した。ニューヨークで現在開催されているMicrosoftの開発者向けイベント「Microsoft's Connect();」で発表された。

 Microsoftはこれまでもオープンソースのプロジェクトやコミュニティへの関与を強化してきたが、現在はGitHubの代表的なオープンソースコントリビュータであり、2016年中はオープンソース開発への関与を示すマイルストーンを発表している。

 例としてオープンソースの.NET Core 1.0のリリース、Canonicalとの連携によるWindows 10へのUbuntu統合、FreeBSDとの協力によるAzureイメージのリリース、およびXamarin買収後のソフトウェア開発キットのオープンソース化などが挙げられる。

 Microsoftのクラウド&エンタープライズ グループのエグゼグティブバイスプレジデントのScott Guthrie氏はリリースの中で「The Linux Foundationのメンバーになることで、オープンソースコミュニティと提携して、開発者らがインテリジェントなクラウドやモバイル体験へとスムーズに移行できるよう手助けしたい」などと述べている。

日立製作所、同心円パターンを印刷したフィルムをレンズの代わりに利用する技術を開発

日立製作所が、レンズの代わりに同心円を印刷したフィルムを使った撮影技術を開発したと発表した。レンズを利用しないことでカメラの薄型化・軽量化を実現できるという。

複数の異なる同心円パターンを印刷したフィルムを重ね合わせると「モアレ」と呼ばれる縞模様が発生するが、この縞模様はフィルムへの光線の入射角によって間隔が変わるという。これを利用し、縞模様をセンサーで記録することで光線の入射角を記録し、その後画像処理を行うことで撮影画像を得られるという。

また、画像処理に必要な計算量も少なく、標準的なノートパソコンで毎秒30フレームで動画撮影できることも確認したとのこと。

 

中国企業が開発・提供しているスマホ向けファームウェアにバックドア

中国のShanghai ADUPS Technologyが開発したスマートフォン向けファームウェアにバックドアが仕込まれており、位置情報や通話履歴、連絡先、テキストメッセージなどを中国内に送信していたことが判明したという。

ADUPSFOTAという、無線ネットワーク経由でアップデート可能なファームウェアを提供する企業。さまざまな端末向けチップセットに対応し、200以上の国や地域で、7億以上のユーザーが利用しているという。

バックドアを発見したセキュリティ企業kriptwireによると、送信しているデータはテキストメッセージ全文や連絡先リスト、電話番号付きの通話履歴、デバイスIDIMSIIMEIなどを含む個人情報および端末情報。さらに、特定のキーワードを含むユーザーやテキストメッセージを指定して情報を抜き出すことも可能で、このキーワードは外部から設定が可能になっていたという。さらにAndroidのパーミッション機構を無視して情報収集をしたり、外部からシステム権限でコマンドを実行したり、デバイス内のプログラム書き換えを行う事もできるという。ただし、メールアドレスの収集やキーロギングの機能は備えていないとのこと。

2011年に米Sprint携帯の「ユーザーに無断で情報送信を行う機構」が問題になったが、ここで問題となった「Carrier IQ」と比較すると任意のアプリインストールやアップデートなどができる点がより悪質のようだ。

 

2016年11月14日月曜日

Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き)

Dockerの特徴

Dockerは、Linux上のシンプルで軽量な仮想環境(コンテナ)で以下の特徴があります。

早い・軽い

OSレベルの仮想化なので、起動は一瞬です。コンテナ間でイメージを共有できるので、コンテナの起動自体ではディスクは消費しません。

Dockerイメージ、Docker Hub

コンテナで利用するファイル・設定はDockerイメージとして、保存・再利用できます。 Docker Hubでは、多くのイメージ(30万以上)が公開されています。

設定の明示、ビルド自動化

Dockerfile等の設定ファイルを利用し、設定をコードとして明示的に記述することで、ミスを防ぎ変更を容易にします。

アプリケーション指向

アプリケーションのビルド・実行・デプロイを簡単・便利に行う、ことを主な目的としています。

柔軟・自由

個々のツールは独立しており、様々な用途で利用することができます。最近では、コンポーネント化を更に進めています。(runC, swarmkitなど)

充実したエコシステム

アーキテクチャがしっかりしており、API・ドキュメントが整備されていることから、周辺ツールなどのエコシステムが充実しています。

充実した純正ツール

クラスタ(Docker Swarm)クラウド(Docker Cloud)レジストリ(Docker Hub)インストーラ(Docker Toolbox, Docker for Mac)GUIツール(Kitematic)などの純正ツールが充実していることから、互換性などにわずらわされず利用できます。

コンテナと仮想マシンの違い

コンテナはOSレベルの仮想化を行いその上でプロセスを動かしますが、仮想マシンはマシンレベルの仮想化を行いその上でゲストOSを動かします。

Docker実戦活用ガイドp.7 より

コンテナ(Docker)仮想マシンを比較すると、以下のようになります。コンテナ(Docker)は、早い、リソース消費が少ない、OSLinuxのみ、という特徴があります。

コンテナ(Docker)

仮想マシン

起動

早い

遅い

リソース消費

少ない

多い

OS

Linuxのみ

何でも可

Dockerの人気

Google TrendsではDockerキーワードの人気度は以下のように増えてきています。

(Google Trendsより)

また、以下のように、DevOpsでの利用が昨年の倍に増えているという統計もあります。

( New DevOps Trends: 2016 State of the Cloud Survey より)

GoogleAmazon(AWS)なども、コンテナを利用したサービスも出しています。

·         Google GKE(Google Container Engine), Google GCR(Google Container Registry)

·         Amazon ECS(EC2 Container Service)Amazon ECR(EC2 Container Registry)

Dockerのインストール

Dockerのインストールは、以下のツールを使います。

·         Mac
Docker Toolbox
Docker for Mac

paiza.hatenablog.com

·         Windows
Docker Toolbox

·         Linux
インストール手順

Dockerの構成(5つの要素)

Dockerでは、大きく5つの重要な要素があり、図のような関連があります。

コンテナ

Dockerイメージから作られ、実行される仮想環境です。

Dockerイメージ

コンテナのファイルシステム、設定をひとまとめに保存しています。

Dockerサーバ

Docker本体ともいえる、コンテナ・イメージの管理を行うサービスです。

Dockerクライアント

ユーザが実際にDockerを操作すル時に使うコマンド、GUIツールです。Dockerを利用する周辺ツールも含まれます。

Docker Hub(レジストリ)

Dockerイメージを集めたサイトです。OS、アプリケーションのイメージが多く公開されており、誰でも自由に利用できます。

Dockerの基本コマンド

Dockerを動かすのに必要な重要コマンドを紹介します。Docker Toolboxでインストールした場合は「Docker Quickstart Terminal」を起動してコマンドを入力します。Docker for Macでは、「ターミナル」アプリケーションで、直接コマンドを入力できます。

実行(docker run)

指定したDockerイメージを実行します。

: Hello Worldの実行

$ docker run hello-world

: Ubuntuの実行

$ docker run -i -t ubuntu /bin/bash

: Nginxの実行(8080番で実行)

$ docker run -p 8080:80 nginx

コンテナの一覧(docker ps)

実行中のコンテナ一覧を表示します。(-aで停止しているコンテナも表示します)

$ docker ps

終了(docker kill)

指定したDockerイメージを終了します。(削除はされません)

$ docker kill [コンテナID/名前]

削除(docker rm)

コンテナを削除します。

$ docker rm [コンテナID/名前]

Dockerコマンド一覧

Dockerコマンドは数多くありますが、概要をまとめてみます。詳しくはヘルプやDockerサイトを参照してください。

コンテナ操作

·         attach コンテナにアタッチ

·         cp コンテナ・ホスト間でのファイルコピー

·         create コンテナ作成

·         diff コンテナのファイルシステム差分表示

·         exec 既存コンテナでコマンド実行

·         export コンテナをtarファイルで保存

·         history コンテナの履歴を表示

·         import tarファイルからコンテナ作成

·         inspect コンテナ・イメージの情報表示

·         kill コンテナの終了

·         logs コンテナのログ(出力)取得

·         pause コンテナの一時停止

·         port 公開ポートの表示

·         ps コンテナ一覧表示

·         rename コンテナ名の変更

·         restart コンテナの再起動

·         rm コンテナの削除

·         run コンテナの実行

·         start コンテナの実行

·         stats コンテナのリソース利用状況表示

·         stop コンテナの停止

·         top コンテナの実行状況表示

·         unpause コンテナの再開

·         update コンテナの設定を動的に変更

·         wait コンテナの終了を待つ

イメージ操作

·         build イメージのビルド

·         commit コンテナからイメージ作成

·         images イメージ一覧表示

·         inspect コンテナ・イメージの情報表示

·         load tarファイルからイメージ作成

·         rmi イメージの削除

·         save イメージをtar保存

·         tag イメージにタグ名を設定

Docker Hub(レジストリ)

·         login Docker Hub(レジストリ)にログイン

·         logout Docker Hub(レジストリ)からログアウト

·         pull Docker Hub(レジストリ)からコンテナ取得

·         push Docker Hub(レジストリ)にコンテナ保存

·         search Docker Hub(レジストリ)の検索

ネットワーク

·         network connect コンテナをネットワークに接続

·         network create ネットワーク作成

·         network disconnect コンテナのネットワークからの切断

·         network inspect ネットワークの状態表示

·         network ls ネットワーク一覧

·         network rm ネットワークの削除

ボリューム操作

·         volume create ボリュームの作成

·         volume inspect ボリュームの内容表示

·         volume ls ボリュームの一覧表示

·         volume rm ボリュームの削除

Swarmクラスタ

·         node accept Swarmノードをクラスタに追加

·         node demote Swarmノードをマネージャからワーカーに降格

·         node inspect Swarmノードの状態表示

·         node ls Swarmノードの一覧表示

·         node promote Swarmノードをワーカからマネージャに昇格

·         node rm Swarmノードをクラスタから削除

·         service create Swarmクラスタ上にサービス作成

·         service inspect Swarmクラスタ上にサービス状態表示

·         service ls Swarmクラスタ上のサービ一覧表示

·         service rm Swarmクラスタ上のサービス削除

·         service scale Swarmクラスタ上のサービスのコンテナ数(task)変更

·         service task Swarmクラスタ上のサービスのコンテナ(task)一覧表示

·         service update Swarmクラスタ上のサービスの設定変更

·         swarm init Swarmクラスタの作成

·         swarm join Swarmクラスタへのノード追加

·         swarm leave Swarmクラスタからのノード削除

·         swarm update Swarmクラスタの設定変更

プラグイン

·         plugin disable プラグインの無効化

·         plugin enable プラグインの有効化

·         plugin inspect プラグインの状態表示

·         plugin install プラグインのインストール

·         plugin ls プラグインの一覧表示

·         plugin rm ラグインの削除

その他

·         daemon サーバ起動

·         events イベントの監視

·         info Dockerの情報表示

·         version バージョン表示

Dockerfile

Dockerイメージの構築方法をコードとして記述するファイルです。 元となるイメージや、実行するコマンドを記述します。

Dockerfileの例(nginx):

# Nginx
#
# VERSION               0.0.1
 
FROM      ubuntu
MAINTAINER Victor Vieux <victor@docker.com>
 
LABEL Description="This image is used to start the foobar executable" Vendor="ACME Products" Version="1.0"
RUN apt-get update && apt-get install -y inotify-tools nginx apache2 openssh-server

Dockerイメージの構築コマンド例:

$ docker build -t mynginx .

Dockerの仕組み

Dockerでは、コンテナを実現するために以下のLinuxの機能を利用します。

chroot

コンテナごとにファイルシステム空間を分けます

スタッカブルファイルシステム

ファイルシステムの階層を利用することで、ディスクを効率良く利用します。

ネームスペース

コンテナごとに名前空間を分けます。 名前空間には、プロセス・ネットワーク・IPC・マウント・ホスト名・ユーザがあります。

cgroups

CPU、メモリ、ディスク入出力等のリソース管理を行います。

Dockerの純正ツール

Dockerは、以下のような純正ツール・サービスを提供しています。

Docker Engine

Docker本体ともいえる、コンテナ・イメージの管理・実行を行うツールです。

Docker Hub(レジストリ)

Dockerイメージを集めたサイトです。OS、アプリケーションのイメージが多く公開されており、誰でも自由に利用できます。

Docker Toolbox

Mac, Windows上でDockerを利用するためのインストーラです。VirtualBox仮想マシンの上でLinuxDockerサーバを動作させます。

Docker for Mac

Mac上でDockerを利用するためのインストーラです。VirtualBox不要でMacと密に統合されており、Docker Toolboxより、遥かに便利に利用できます。 VirtualBoxと同時に利用できます。ベータ版ですが十分利用できます。

Docker for Windows

Windows上でDockerを利用するインストーラです。VirtualBox不要でWindowsと密に統合されています。VirtualBoxと同時には利用できません。ベータ版で、現時点ではあまりお勧めできません。

Kitematic

GUI操作でDockerが利用できるツール(クライアント)です。

Docker Machine, Docker Swarm, Docker Compose

クラスタ環境にアプリケーションを展開するためのツールです。Docker MachineDockerホストを構築し、Docker Swarmクラスタを管理し、Docker Composeがアプリケーションの展開を行います。

Docker Cloud

ウェブ上で、Dockerホストの管理や、アプリケーションのデプロイが行えるツールです。

考え方

Dockerに関連して、ソフトウェア・インフラのあり方に影響を与える考え方が出てきています。

Immutable Infrastructure

従来、サーバは常時動作しており、設定やアプリケーションは適時変更していました。手動で設定するとミスが発生しますし、構成管理ツール(Puppet, Chef, Ansible)を使っても完全にすべてのサーバを同じ状態に保つことは難しいです。Immutable Infrastructureでは、サーバ起動後、設定を変更したりアプリケーションをインストールせず、必要に応じてコンテナを作り直します。 これにより、適用忘れやサーバごとに状態が変わることを確実に避けます。

マイクロサービス(Micro Service)

軽量で起動が早いというコンテナの特徴を生かすことで、アプリケーション・プロセスなど小さい単位でコンテナを分離します。これにより、依存関係が減り、開発やアップデートが容易になります。

Infrastructure as Code

マシンの状態をコードで記述するという考え方です。コードで記述し自動化することで、ミスを減らし変更・管理が容易になります。

DevOps

従来、物理マシンの管理(インフラ)、ソフトウェアの開発は役割が分離されていました。しかし、マシンの仮想化が進み、インフラの状態をコードとして記述できることから、ソフトウェア開発とマシンの管理を密に統合し、効率よく開発するという考えが生まれています。

Windowsコンテナ

現時点では、DockerLinux上のコンテナと言っていいです。Windows上で動かす場合も、Windows上の仮想マシン上のLinux上でDockerが動いています。しかし、今後状況が変わる可能性があります。Windows Server 2016では、WindowsコンテナがDockerプロトコルをサポートする予定です。これにより、WindowsDocker上で動くようにになります。