Macのdockerを1.0にアップグレードする

まだ、docker 1.0になってからアップグレードしてないMacがあったので、アップグレードしました。

## 古いboot2dockerのアンインストール

次の手順で`boot2docker`をインストールしていた人はこの手順を行う必要があります。

```sh
# これでインストールしてた人は一度消す必要がある
$ brew tap homebrew/binary
$ brew install boot2docker docker
```

1.0から`brew cask`でインストールできるようになりました。
逆に、普通に`brew`ではインストールできないようになりました。
そのため、一度`boot2docker`をアンインストールします。

boot2dockerが起動していたらstopします。

```sh
$ boot2docker stop
[2014-06-15 13:50:35] Shutting down boot2docker-vm...
```

使っていたtiny core Linuxを削除します。

```sh
$ boot2docker delete
```

boot2dockerをアンインストールします。さらば。

```sh
$ brew uninstall boot2docker docker
Uninstalling /usr/local/Cellar/boot2docker/0.9.1...
```

## brew caskでboot2dockerをインストール

まずは、`update`しましょう。

```sh
$ brew update
```

caskが入っていない場合は、インストールします。

```sh
$ brew tap phinze/homebrew-cask
$ brew install brew-cask
```

入っている場合は`upgrade`。

```sh
$ brew upgrade brew-cask
```

あとはインストールするだけ！

```sh
brew cask install boot2docker
==> Downloading https://github.com/boot2docker/osx-installer/releases/download/v1.0.0/Boot2Docker-1.0.0.pkg
######################################################################## 100.0%
==> Running installer for boot2docker; your password may be necessary.
Password:
==> installer: Package name is Boot2Docker for Mac OS X
==> installer: Upgrading at base path /
==> installer: The upgrade was successful.
 boot2docker installed to '/opt/homebrew-cask/Caskroom/boot2docker/1.0.0' (135M)
```

以前のboot2dockerと比べてもコマンドが増えてる。。

```sh
# old
$ boot2docker
Usage /usr/local/bin/boot2docker {init|start|up|save|pause|stop|restart|status|info|delete|ssh|download}
```

```sh
# new
$ boot2docker
Usage: boot2docker [<options>] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|delete|download|version} [<args>]
```

## 動作確認

`[IP Address]`の部分は適当なものを入れてください。

```
$ boot2docker init
$ boot2docker up
$ export DOCKER_HOST=tcp://[IP Address]:2375
$ boot2docker ssh
Warning: Permanently added '[localhost]:2022' (RSA) to the list of known hosts.
                        ##        .
                  ## ## ##       ==
               ## ## ## ##      ===
           /""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
           \______ o          __/
             \    \        __/
              \____\______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
boot2docker: 1.0.0
             master : 16013ee - Mon Jun  9 16:33:25 UTC 2014
```

無事upgradeできました。Moby Dockかわいい。

```
$ docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.1
Git commit (client): 63fe64c
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.1
Git commit (server): 63fe64c
```

## 出会ったエラー

### no such file or directory

`DOCKER_HOST`をExportしてないと出ます。

```sh
$ docker images
Get http:///var/run/docker.sock/v1.12/images/json: dial unix /var/run/docker.sock: no such file or directory
```

`DOCKER_HOST`をExportしましょう。

```sh
export DOCKER_HOST=tcp://[IP Address]:2375
```

### permission denied

悩んだ。。

VPNにつないでいるとおかしいっぽいです(◞‸◟)。
VPNを切りましょう。VPNに接続したままやる方法はよくわかりません。

```sh
$ docker images
Get http://[IP Address]:2375/v1.12/images/json: dial tcp [IP Address]:2375: permission denied
```

## 参考
- [problems working with docker via boot2docker on mac OSX when connected to a VPN](http://blog.gmane.org/gmane.comp.sysutils.docker.devel)