Dockerのインストール

最近よくWeb上でちらちら見かけるDockerというのが気になっていて、時間ができたので試してみた。

Dockerはコンテナ仮想化というアーキテクチャらしく、OSは共有するけどアプリケーションごとに実行環境を分けるchroot的なイメージに近いっぽい。LinuxのLXCというコンテナ技術を使ってるので、基本的にMac上ではそのままは動かないのだけど、Mac上にVirtualBoxで専用のホストVMを立てて、その中でコンテナを複数立てて使うというイメージになる。

公式のインストール手順はこちら↓
http://docs.docker.io/en/latest/installation/mac/

VirtualBoxの公式ページからがMac用のインストールバイナリをダウンロードしてインストールする
Downloads – Oracle VM VirtualBox
VirtualBox 4.3.8 for OS X hosts x86/amd64」を選択してダウンロード

  • boot2dockerとdockerをダウンロード

/usr/local/binの下に直接置くとかワイルドな感じなので好みに合わせて好きな場所に置いてパス通せばよいかと思う。

$ cd /usr/local/bin
$ curl https://raw.github.com/boot2docker/boot2docker/master/boot2docker > boot2docker
$ chmod +x boot2docker
$ curl -o docker https://get.docker.io/builds/Darwin/x86_64/
$ curl -o docker https://get.docker.io/builds/Darwin/x86_64/docker-0.8.0
$ chmod +x docker

※現在2014/03/17時点でMac OS X 10.9.2でdocker-latest(0.9.0)は「Illegal instruction: 4」というエラーが出て起動できないようです。docker-latestではなく明示的に0.8.0を指定したらエラー出ず動いた。

~/.bashrcに以下の環境変数設定を追加

export DOCKER_HOST=tcp://

公式にはtcp://127.0.0.1:4243を追加しろと書いてあるが、色々な解説記事でtcp://を設定するように書いてあるのでそのように指定。違いはよくわからず。

.bashrcをリロード

$ . ~/.bashrc
  • boot2dockerのVM準備
$ boot2docker init
$ boot2docker up
  • boot2dockerにsshログイン
$ boot2docker ssh
docker@localhost's password: 
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
boot2docker: 0.7.0

デフォルトでユーザ名:docker、パスワード:tcuserでログインできる。
このAAがキレイにはてダで表示できるのか不明ですが。

  • dockerバージョン確認
$ docker version
Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
Server version: 0.9.0
Git commit (server): 2b3fdf2
Go version (server): go1.2.1

インストールできたっぽい。