今、急速に盛り上がりを見せている、Linux 環境で使用できる仮想化環境の Docker を試してみます。
Docker のインストール
1) 以下よりダウンロード
Releases · boot2docker/windows-installer
2)ダウンロードしたファイルを実行
インストーラーのデフォルト設定だけでOKです。
ここでは後で問題が起きた時のために、個人的なメモ代わりにキャプチャーを貼り付けています。
インストールはデフォルトで、”Program Files” の下と・・・
Oracle の Virtual Box が入ると・・
VMware Workstation も入っているけど大丈夫かな・・・
Windows のセキュリティの警告がでます。そのままインストールします。
複数回問われるので、「Oracle Corporationからのソフトウェアを常に信頼する」のチェックを入れておいた方がいいです。
インストールの確認
デスクトップになにやらアイコンができたので、起動してみます。
数分かかりますが、最終的にプロンプトが表示されます。
どうやらこれが Docker のコンテナをホストしている Linux のようです。
環境が正しくインストールされたかどうか確認するには以下のコマンドを打ちます。
(これはインストーラーの最後の画面に表示されていました)
$docker run hello-world
実際に実行してみると以下のようになります。
①の所でコマンドを打っています。
②の部分の所で、
Hello form Docker (Dockerからこんにちは)
This message shows that your installation apperars to be working correctly.(このメッセージは、インストールが上手くいって正しく動作している事を示しています)
と出ているので、多分、上手くインストールされているようです。
③の部分で、
$docker run –it ubuntu bash
を打つと、Ubunt のコンテナを走らせる事ができる。と書いてあります。
とりあえずそのまま打ってみます。
何やらダウンロードしてきました。
それでけでは無く、コマンドを打つ前と、コマンドプロンプトのフォーマットが変わっています。
どうやら Ubuntu の bash に切り替わっているようです。
Ubuntu に触った事がないので、どうやって確認しようかなと思ったら、/etc/os-release に書いているようです。どうやら本当に Ubuntu にログインしているようです。
exit で元の docker のコマンドプロンプトに戻りました。
とりあえず Hello World 等をしてみる。
ユーザーガイドの以下のページを見ながら、Ubuntuのコンテナを使って、echo で、”Hello World” を実行してみます。
Dockerizing Applications - Docker Documentation
$ docker run ubuntu:14.04 /bin/echo “Hello World”
実際の実行時はコマンドプロンプトは以下のようになるはずです。
ubuntu 14.04 のコンテナが無いので、まずダウンロードしに行ってから、最後に “Hello World” が実行されているのがわかります。
2回目に同じコマンドを実行する場合は、既に Ubuntu 14.04 のコンテナがあるので、以下のようになるはずです。
次に以下のコマンドを打ってみます。
$ sudo docker run -t -i ubuntu:14.04 /bin/bash
ここで - t は、コンテナ内部に作られる仮想の tty もしくはターミナルをアサインする。
-i は、インタラクティブの –i だそうです。
ようするに、コンテナを起動してターミナル接続が可能になります。最後の /bin/bash は、接続した後、bash 環境を作ります。別に指定しなくても大丈夫です(英語のユーザーガイドのコマンドがそうなっていたのでそのまま書いています)。
実際にやってみると以下のようになるはずです。ターミナルを抜ける時は exit で抜けます。
個人的に「へぇ。そうなんだ」と思ったのは、exit で抜けた瞬間にコンテナが終了している事です。
Docker の動いているコンテナは以下のコマンドで確認できるそうでが、上記で exit した瞬間だと何も動いているコンテナが確認できませんでした。
$ sudo docker ps
おまけ:boot2docker 用の コンソールが使いにくいので ssh でログインしてみる
boot2docker のコンソールはコピペができず使いにくいので、代わりに Telenet ソフトでログインしてみます。
boot2docker のコンソールで、「ifconfig」を実行すると、インターフェイスの一覧が出てきます。
幾つかネットワーク・インターフェイスがあるので、ホスト(ここでは WIndows 7) のコマンドプロンプトから ping を打って、返ってくるアドレスを見つけます。ここでは eth1 が繋がっていました。
後は、ssh ができるソフトから
ホスト: ping が返ってきたアドレス
ユーザーID : docker
パスワード:tcuser
でログインできます。以下は私の環境の例です。
無事 ssh クライアントで、boot2docker ( docker のホスト)にログインできました。