12/21/2014

Microsoft AzureでDockerを使ってみる

 

Ubuntu 14.04のDockerクライアントとAzure CLIを使って、Docker HostをMicrosoft Azureで動かしてみます。

Docker01 

下記の手順は全て上図左側のDocker Clientの作業です。Docker Host上で作業することはありません。それでは、Docker Client上でAzure CLIの準備からいきますよー。

 

Microsoft Azure Cross Platform CLI Toolsのインストール

UbuntuなどWindows Powershell以外で動かすAzure CLIは、Microsoft Azure Cross Platform CLIと呼ばれており、Node.jsのパッケージマネージャーで配布されています。では、下記の通りNode.jsをインストールした後に、npmによりAzure CLIをインストールしてみます。

$ sudo apt-get install nodejs-legacy
$ sudo apt-get install npm
$ sudo npm install azure-cli --global

上記コマンドで、Azure CLIのインストールが完了したら、Azure CLIを自分のAzureサブスクリプションに対して発行できるように設定します。まずは、発行するために使用するクレデンシャルを下記コマンドで取得します。

$ azure account download
info:    Executing command account download
info:    Launching browser to http://go.microsoft.com/fwlink/?LinkId=254432
help:    Save the downloaded file, then execute the command
help:      account import <file>
info:    account download command OK

sshで接続するなどコマンドライン環境の場合は、上記メッセージが表示され、ブラウザでクレデンシャルを取得するように指示されます。その場合は、別途ブラウザから下記URLにアクセスしてクレデンシャルをダウンロードしてください。

http://go.microsoft.com/fwlink/?LinkId=254432

クレデンシャルのダウンロードに成功したら、下記のように、そのファイルをAzure CLI環境にインポートします。

$ azure account import "Azure Pass-12-16-2014-credentials.publishsettings"

インポートしたサブスクリプションは下記で確認することができます。

$ azure account list

また、Azure CLIで使用するサブスクリプションを変更する場合は下記コマンドを使用します。

$ azure account set [サブスクリプション名]

 

Dockerクライアントのインストール

Apt-getを使って、Dockerクライアントツールをインストールします。

$ sudo apt-get install docker.io

インストールされたDockerのバージョンを確認してみます。

$ docker --version

Dockerのメンテナンスパッケージをインストールする場合は下記のコマンドを実行。

$ curl https://get.docker.io/ubuntu/ | sudo sh

 

Microsoft AzureにDocker Hostを作成

Azure CLIの下記コマンドを使ってAzureにDocket Hostを作成します。

$ azure vm docker create -location "<location>" [options] <host-name> <image> <user-name> [password]

例えば、DNS名はmydockerhost、ロケーションはJapan West、イメージはUbuntsu、Linuxのユーザーはazureuser、パスワードはp@sswordの場合は、下記のようなコマンドになります。

$ azure vm docker create -location "Japan West" mydockerhost "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_1-LTS-amd64-server-20141125-en-us-30GB" azureuser p@ssword

なお、イメージはAzure CLIを使用して出力されるイメージ名から選択してAzure CLIのコマンド引数に使用します。

$ azure vm image list | grep Ubuntu-14_04

 

Docker Hostに接続してみる

作成されたDocker Hostへの接続は、下記のコマンドのように行います。接続先のホスト名はAzure CLIで作成されたホスト名を指定します。

$ docker --tls -H tcp://mydockerhost.cloudapp.net:4243 info

Dockerコマンドを実行する毎にホスト名を指定するのは大変なので、DOCKER_HOST環境変数を使用して、接続先のホスト名を設定します。

$ export DOCKER_HOST="tcp://mydockerhost.cloudapp.net:4243"

これによりDockerコマンドは、下記のように省略することが可能になります。

$ docker --tls info

 

これで、Microsoft Azure上でDockerが使えるようになりました。次の記事では、ASP.NET をDocker(Linuxコンテナ)で動かしてみます!