Azure

Microsoft Azure でDockerはじめちゃいますか?

じゅんくどうです。
本投稿は「Azure Advent Calender 2014」12月7日分の投稿になります。Azure Advent Calender 2014は各人が12月25日まで思い思いにAzureについて投稿するイベントです。今回は、(たぶん)Microsoftも注目しているDockerについて書きます。

MicrosoftとDocker

最近、Microsoft界隈の方も「Docker」という言葉を頻繁に耳にすると思います。そう、10月15日にDocker社と提携したという発表があったためです。また、スコットガスリー氏のブログで、次期Windows ServerでDockerをサポートするとともに、Docker Hubとの統合も行えるようにすると書かれています。これによってWindows でもDockerが動くということになり、Windows、Linuxという壁を越えてDockerを扱えるようになります(なるはずです)。

現状、WindowsがサポートしているのはDocker Clientです。Docker ClientはAPI、コマンドラインによる操作が可能となります。

AzureでDockerを使ってみる

AzureでDockerを使う方法として2つ。
– Linuxインスタンスを立ち上げてDockerをインストールする。
– 用意されたCoreOSイメージを利用する。

前者はapt-getやyumでインストールして利用しようって感じです。
後者は仮想マシンで用意されているCoreOS利用する方法です。
前者については真新しいものでもないので、今回は後者の方法を見ていきたいと思います。

では、最初にAzureポータルから仮想マシンを作成。CoreOSイメージを選択しましょう。
おっと、2つイメージが表示されます。何が違うのか確認してみましょう。
DockerとCoreOSのバージョンを調べてみました(2014/12/03時点)

①CoreOS Alpha

②CoreOS Beta

Dockerのバージョンは、1.3.2と同じものになります。
CoreOSのバージョンがAlpha版は509.1.0、Beta版は494.1.0となります。
Alphaの方が最新版になるくことに注意しましょう。

さて、実際にイメージを選択しインストールしていきます。
Alpha版をインストールします。
仮想マシンの作成方法は変わりませんので、適当に入力/選択します。

ここも一緒です。

拡張機能は使えないのでそのまま進めましょう。
将来的に、Deep Security Agentが使えるといいなぁ(願望)

はいこれで完了です。
簡単ですねーーー。

ではログインしてみましょう。
・・・・それでは、面白くないのでDocker CLI for Windows Clientsを使ってみます。
Docker CLI for Windows Clientsは「Connect();」でもデモ公開されました。

Docker CLI for Windows Clientsを利用するには、githubで公開されているソースから、Windowsでコンパイルして利用する方法があります。コンパイル方法については「How to compile Docker on Windows」で公開されています。

上記のサイトを参考(超超超訳)で進めていきます。

事前準備としてAzure上にWindows Server 2012 R2を立ち上げましょう。
Dockerと通信が行える場所に配置しましょう。

Step1:Goをインストールします。

Goのインストーラをgolang.orgよりダウンロードます。インストールするとコマンドプロンプトで利用できるようになります。

バージョン確認

Step2:コードをチェックアウトします。

Gitをインストールします。

次にdocker/cockerレポジトリよりCloneします。

実行結果

Step3:コンパイル!

簡単です。コマンドプロンプトより次のコマンドを実行します。

実行結果

全て完了したら、愛しのdocker.exeがディレクトリにできています♡

実行結果

バージョンの確認

Dockerをリモートで操作する方法としてRemote APIを使います。
そのためにCoreOS側でSocketを作成する必要があります。

CoreOS側にログインしてsocketを作成します。
docker-alpha ~ # vi /etc/systemd/system/docker-tcp.socket

ポート2375で待ち受けするようにSocketを作成します。

Dockerを再起動します。

ポート2375で動作しているか確認します。

問題ないようです。
ではWindows側で確認してみましょう。

…ウップ
APIのバージョン違うぞって怒られた。

あれ?CoreOS + Docker CLI for Windows Clients on Azureは・・・ムリポ?

今回は時間がないのでここまで!まぁ通信できているからいいか(w
Dockerからブランチ指定してCloneしたらBuildできないorz
CoreOSではなくUbuntuとかにインストールすればDockerも1.16つかえるので大丈夫です。
CoreOS・・・・・

おまけ

それでもWinodwsで夢をみる

じゃWindowsでDocker使いたいよって人の為には!
boot2dockerを利用するのが簡単かな?

では早速、Azure でWindows7を起動させて・・・ちょっとまって!boot2dockerは、AzureやHyper-vで起動しません。

なぜかって?

boot2dockerはVirual Box上で起動する仕組みになっています。そして64bit対応である必要があります。
Virual BoxがAzure上やHyper-v上で64bitで動作しないのでムリポ。(ここら辺、詰めて検証していないのであとでやってみます。)

では、boot2dockerを動作させるためにはどうしたら良いか?実機を使いましょう(w
boot2dockerはこちらのサイトよりダウンロードできます。
ドキュメントはこちら

ダウンロードしてきたdocker-install.exeを走らせインストールを開始します。

インストールが完了したらデスクトップ上に「Boot2Docker Start」というショートカットができます。
起動しましょう。

バックグラウンドでは、Virual Boxにマシンイメージが作成され起動されます。
そして自動的に、sshで接続されます。

これで使えますね。

さー確認してみましょう

APIのバージョンが一緒なので大丈夫!
確認ができましたね。

以上で今回のdocker特集は終了。
でわでわ

Related post

  1. Azure

    AKS ( Kubernetes ) のPod からログをFilebeat を使って収集してelas…

    はじめにくどうです。先日、fluentd によるKuber…

  2. Azure

    MCP70-532を受験してきた。

    はじめにくどうですAzureのMCP試験は3つあります。…

  3. Linux

    PowerShell on Bash on Ubuntu on Windows が簡単に出来るように…

    はじめにくどうです。どうやら、PowerShellがapt…

  4. Linux

    Windows 10 Creators UpdateでApache on Ubuntu on Win…

    はじめにくどうです。Windows 10 Creators…

  5. Azure

    他社さんの、社内勉強会に行ってきた。

    はじめにくどうです。9/8にNTTPCコミュニケーションズさんの…

  6. Azure

    Azureでは仮想マシンのパスワードをポータルからリセットできます。

    はじめにくどうです。Azureで、仮想マシンのパスワードを…

  1. Azure

    Azure AppService (WebApps)で Sendmailを利用す…
  2. Windows

    SQLServerで必要なポートをあける。コピペでどーん。
  3. AWS

    CLR/H in TOKYO #7 ~カソウ化デイ~
  4. Azure

    「クラウドの知識から学ぶ Azure 勉強会@旭川」に参加して話してきた。
  5. Azure

    AKS ( Kubernetes ) のPod からログをfluentd を使っ…
PAGE TOP