つばろぐ

主に C#, .NET, Azure の備忘録です。たまに日記。

Asus ZenFone5をAndroid5(lollipop)にアップデートしました

何もしてないけど調子がおかしくなったスマホ

うちの親が言いそうな言葉。

我が愛機、Asus ZenFone5の機嫌がたった3日でとても悪くなりました。

症状としては、

  • アプリのアップデートができない
  • スマホがロックされない(ずっとロック解除されてる状態)
  • Facebookメッセンジャーが起動しない
  • LINE通話がつながらない
  • アプリからの通知が来なかった
  • 目覚まし時計アプリが動かず寝坊した

とても由々しき事態でした。

初期化のついでにAndroidのバージョンアップをしました

最初は初期化だけしようと思っていましたが、数日前にこの記事を見つけました。

ZenFone 5 (A500KL)がついにAndroid5へアップデート開始
simfree-life.info

もともとZenFone5は、Android4.4(kitkat)でした。
手動ではありますが、Android5(lollipop)にアップデートしました。

手順は上記記事の通りで、幸い文鎮にならずに済みました。
これでまだしばらく戦えそうです。

とりあえずスクフェスとソードアート・オンライン コードレジスタのデータを復元するところからです。

f:id:tech-tsubaki:20160122232436j:plain

2015年の人気記事ランキングを作ってみました

遅ればせながら2015年の当ブログ人気記事ランキングを作成しました。
このランキングは昨年初めてお会いすることができた、しばやん先生が公開したWebサービスを利用して作りました。

blog.shibayan.jp

2015年人気記事はこちら

  1. C#におけるref修飾子とout修飾子の違い - つばろぐ

  2. C#における throw と throw ex の違い - つばろぐ

  3. C#とVB.NETでのオブジェクト初期化子の書き方とは - つばろぐ

  4. VagrantでWindowsのBoxを無料で構築する - つばろぐ

  5. CSSのtransition-durationプロパティでなめらかに要素の状態を変更する - つばろぐ

  6. VMWare PlayerへのCentOSインストール手順 - つばろぐ

  7. .bashrc に引数付きの alias を定義する - つばろぐ

  8. Dropbox / OneDrive / Googleドライブ に入れておきたい 7個 のポータブルアプリケーション - つばろぐ

  9. vi起動時に「E437: terminal capability "cm" required」と表示されたらどうする? - つばろぐ

  10. アイコンフォントを使ってブログにソーシャルリンクを載せました - つばろぐ


んー…2015年に書いた記事はありませんね。
とはいいつつ、C#に関する記事が上位を占めていることは嬉しく思います。

当ブログは平日(月~金)のアクセスが多いので、お仕事でC#を使っている方に読んで頂くことが多いだろうと思っています。
今年もぼちぼち更新になりますが宜しくお願い致します!

Windows Server Container に入門してみた

この記事は Microsoft Azure Advent Calendar 2015 23日目の記事です。
はじめてアドベントカレンダーなるものを書きます。


12月上旬、社内でAzureもくもく会を行いました。
これまであまり触れたことないサービスについて調べてみようと思い、Windows Server Containerをネタにしました。
今回の記事はWindows Server Containerに入門してみたという内容です。
もくもく会の報告も兼ねる!)

Windows Server Containerとは

Windows Serverのコア機能のみを搭載したOSをコンテナ化したものです。
Windows Server 2016 Technical Preview 3から利用することが可能です。

コンテナといえばDockerをイメージされる方が多いと思います。
Windows Server Containerも、Windows用のDockerエンジン上で管理・動作します。

Windows Server 2016には、2つのコンテナがあります。が、今回はHyper-V Containerは省略します。

Windows Server Containerを勉強するには

何はともあれ、まずはMSDNチュートリアルを試すことが良いと思います。
Windows Server Containerのチュートリアルは英語ですが、キャプチャを交えて紹介されていますので、英語が苦手な方でも取り組むことができると思います。

Windows Containers Documentation

環境の準備

前述の通り、Windows Server Containerを利用するには、Windows Server 2016 Technical Preview 3以降が必要となります。
Windows Server 2016 Technical Previewを用意するには、ISOをダウンロードして仮想マシンを作成してもいいでしょうが、今回はさくっとAzure仮想マシンを利用します。

AzureにはMarketplaceと言われる、様々なアプリケーションがインストール済の仮想マシンイメージを公開している画面があります。
その中からWindows Server 2016 Technical Preview 4を選択し、仮想マシンを作成しましょう。

f:id:tech-tsubaki:20151222211441j:plain

仮想マシンが立ち上がったらリモートデスクトップで接続します。
Azureポータルの仮想マシン管理のメニューから「接続」をクリックすると、その仮想マシンリモートデスクトップ接続するためのファイルをダウンロードすることができます。

コマンドでコンテナを扱う

Windows Server Containerをコマンドで扱うには2つの方法があります。

PowerShellです。

Windows Server Containerを扱うためのPowerShellコマンドレットが予めインストールされているので、それを使用します。
Windows Containers Quick Start - PowerShell

コマンドレットについては下記リンクを参照して下さい。
Containers Cmdlets

コンテナイメージを取得する
PS C:\Users\matsumura> Get-ContainerImage

Name              Publisher    Version      IsOSImage
----              ---------    -------      ---------
WindowsServerCore CN=Microsoft 10.0.10586.0 True
コンテナイメージからコンテナを作成する
PS C:\Users\matsumura> New-Container -Name TP4Demo -ContainerImageName WindowsServerCore -SwitchName "Virtual Switch"

Name    State Uptime   ParentImageName
----    ----- ------   ---------------
TP4Demo Off   00:00:00 WindowsServerCore
コンテナを開始する/停止する
PS C:\Users\matsumura> Start-Container -Name TP4Demo
PS C:\Users\matsumura> Stop-Container -Name TP4Demo
新しいコンテナイメージを作成する
PS C:\Users\matsumura> New-ContainerImage -ContainerName TP4Demo -Name WindowsServerCoreIIS -Publisher Demo -Version 1.0

Name                 Publisher Version IsOSImage
----                 --------- ------- ---------
WindowsServerCoreIIS CN=Demo   1.0.0.0 False

PS C:\Users\matsumura> Get-ContainerImage

Name                 Publisher    Version      IsOSImage
----                 ---------    -------      ---------
WindowsServerCoreIIS CN=Demo      1.0.0.0      False
WindowsServerCore    CN=Microsoft 10.0.10586.0 True
コンテナやコンテナイメージを削除する
PS C:\Users\matsumura> Remove-Container -Name TP4Demo
PS C:\Users\matsumura> Remove-ContainerImage -Name WindowsServerCoreIIS

Docker

Windows Server 2016 Technical PreviewにはDockerがインストールされています。
なのでdockerコマンドでもWindows Server Containerを扱うことができます。
Windows Containers Quick Start - Docker

Dockerを利用したことがある人は、こちらのほうがイメージがつきやすいのではないでしょうか?

なお、Windows Server 2016 Technical PreviewにインストールされているDockerは、GitHubに公開されているDockerのバージョンと異なることに注意して下さい。

PS C:\Users\matsumura> docker version
Client:
 Version:      1.10.0-dev
 API version:  1.22
 Go version:   go1.5.1
 Git commit:   59a341e
 Built:        Fri Nov 13 17:23:07 UTC 2015
 OS/Arch:      windows/amd64

Server:
 Version:      1.10.0-dev
 API version:  1.22
 Go version:   go1.5.1
 Git commit:   59a341e
 Built:        Fri Nov 13 17:23:07 UTC 2015
 OS/Arch:      windows/amd64

github.com

WindowsにDockerがインストールされてるから、これでUbuntuとかたてれるな!Boot2Dockerみたいなもんやろ!」と思いましたが、Windows用のDockerエンジンのためLinuxOSを実行させることはできないようです。

PS C:\Users\matsumura> docker pull ubuntu:latest
Pulling repository docker.io/library/ubuntu
Error: image library/ubuntu:latest not found

もちろんDockerfileからコンテナを作成することもできます。

FROM windowsservercore:latest
MAINTAINER Yuta Matsumura "matsumura@example.com"
RUN dism /online /enable-feature /all /featurename:iis-webserver /NoRestart
RUN echo "Hello World - Dockerfile" > c:\inetpub\wwwroot\index.html
PS C:\Users\matsumura\iis> docker build -t iis .
Sending build context to Docker daemon  2.56 kB
Step 1 : FROM windowsservercore:latest
 ---> 6801d964fda5
Step 2 : MAINTAINER Yuta Matsumura "matsumura@example.com"
 ---> Running in 279bc98c968b
 ---> 2d9e54d328cf
Removing intermediate container 279bc98c968b
Step 3 : RUN dism /online /enable-feature /all /featurename:iis-webserver /NoRestart
 ---> Running in aa7b0e18b1ec

Deployment Image Servicing and Management tool
Version: 10.0.10586.0

Image Version: 10.0.10586.0

まとめと今後の課題

MSDNチュートリアルに沿うと、Windows Server Containerについて少し理解することができるようになりました。
ただコンテナを作って終わりでは面白くないので、継続的インテグレーション(CI)に利用できるような使い道を探ってみたいと思います。

Visual Studio Team Services(VSTS)のPowerShellデプロイ機能を利用して、Windows Server Containerをバンバン作ってみようと試しましたが、VSTSとAzure仮想マシンの接続がうまくいかず断念したため、年末年始で再チャレンジしてみたいです。