docker-machineのDockerVersionをUpgrade

表題の通り。`brew update`した際にDockerのversionもupdateされているようであったのでdocker-machineで使用するVMもアップグレードすることにした。

■ 環境

  • Docker 1.8.2
  • docker-machine 0.3.1

■ before

versionは下記の通り。

$ docker version
Client:
 Version:      1.8.1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   d12ea79
 Built:        Thu Aug 13 02:49:29 UTC 2015
 OS/Arch:      darwin/amd64

Server:
 Version:      1.8.1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   d12ea79
 Built:        Thu Aug 13 02:49:29 UTC 2015
 OS/Arch:      linux/amd64
$

■ upgrade

`docker-machine`で`upgrade`コマンドが存在するので実行する。

$ docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM
local   *        virtualbox   Running   tcp://192.168.99.100:2376
$
$ docker-machine upgrade local
Stopping machine to do the upgrade...
Upgrading machine local...
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.8.2/boot2docker.iso to /Users/withsin/.docker/machine/cache/boot2docker.iso...
Starting machine back up...
Starting VM...
$

再度versionを確認。

$ docker version
Client:
 Version:      1.8.1
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   d12ea79
 Built:        Thu Aug 13 02:49:29 UTC 2015
 OS/Arch:      darwin/amd64

Server:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:10:10 UTC 2015
 OS/Arch:      linux/amd64
$

ここで気がついたのだが、client側のDockerのversionが上がっていない。もちろん前述の内容ではupgradeはされないのだが、事前に下記コマンドを実行していたはずである。

$ brew upgrade docker

現在のversionは下記であるはずなのだが…。

$ brew info docker
docker: stable 1.8.2 (bottled), HEAD
Pack, ship and run any application as a lightweight container
https://www.docker.com/
/usr/local/Cellar/docker/1.8.2 (9 files, 9.4M)
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/docker.rb
==> Dependencies
Build: go ✘
==> Options
--with-experimental
    Enable experimental features
--without-completions
    Disable bash/zsh completions
--HEAD
    Install HEAD version
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
$

確認してみると、`/usr/local/bin/docker`がシンボリックリンクで存在しているはずなのだが、現在は実体として存在している。現在のdockerのバイナリを別名にし、シンボリックリンクを作成し直して下記のようになった。

$ docker version
Client:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.5.1
 Git commit:   0a8c2e3
 Built:        Fri Sep 11 01:46:35 UTC 2015
 OS/Arch:      darwin/amd64

Server:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:10:10 UTC 2015
 OS/Arch:      linux/amd64
$

なぜ実体になっていたのか、どの時点でインストールされてしまったのか、わかる範囲で調べてみる。

以上。

■ 関連