Ubuntu 14.04のDockerクライアントとAzure CLIを使って、Docker HostをMicrosoft Azureで動かしてみます。
下記の手順は全て上図左側の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コンテナ)で動かしてみます!