Docker for MacとHomebrewでインストールしたDocker群

表題の件について。

■ 環境

  • Docker 1.11.1, 1.11.2
  • Docker for Mac
  • Mac OSX El Capitan

■ Docker環境

Docker for Macをインストールする前には下記Docker PlatformをHomebrewでインストールしていた。

  • Docker
  • Docker Machine
  • Docker Compose

これらに加えてVirtualBoxをインストールしており、Homebrewで`brew upgrade`をしたところ、下記のようにエラーとなっていたことに初めて気がついた。

$ brew upgrade docker
==> Upgrading docker
==> Downloading https://homebrew.bintray.com/bottles/docker-1.11.2.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring docker-1.11.2.el_capitan.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/docker
Target /usr/local/bin/docker
already exists. You may want to remove it:
  rm '/usr/local/bin/docker'

To force the link and overwrite all conflicting files:
  brew link --overwrite docker

To list all files that would be deleted:
  brew link --overwrite --dry-run docker

Possible conflicting files are:
/usr/local/bin/docker -> /Users/withsin/Library/Group Containers/group.com.docker/bin/docker
==> 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
==> Summary
  /usr/local/Cellar/docker/1.11.2: 10 files, 11.5M
$

ファイルの詳細を見てみると下記のようになっている。

$ ls -l /usr/local/bin/docker*
lrwxr-xr-x  1 withsin  staff  67  6  3 09:32 /usr/local/bin/docker -> /Users/withsin/Library/Group Containers/group.com.docker/bin/docker
lrwxr-xr-x  1 withsin  staff  75  6  3 09:32 /usr/local/bin/docker-compose -> /Users/withsin/Library/Group Containers/group.com.docker/bin/docker-compose
lrwxr-xr-x  1 withsin  staff  75  6  3 09:32 /usr/local/bin/docker-machine -> /Users/withsin/Library/Group Containers/group.com.docker/bin/docker-machine
$

Homebrewでインストールされたものは`/usr/local/Celler/…`にインストールされるはずなので、これらのコマンドは後からインストールしたDocker for Macによってインストールされたもので間違いがなさそうである。

自身が当初持っていた認識では下記のようなものだった。

Docker for Mac = VirtualBox + Docker Machine

サーバ側のプロセスを代替するものだと思っていたのだが、どうやらそれだけではないようである。各種クライアントも同梱しているようだ。

$ ls -l /Users/withsin/Library/Group Containers/group.com.docker/bin
total 48
lrwxr-xr-x  1 withsin  staff  54  6  3 09:32 docker -> /Applications/Docker.app/Contents/Resources/bin/docker
lrwxr-xr-x  1 withsin  staff  62  6  3 09:32 docker-compose -> /Applications/Docker.app/Contents/Resources/bin/docker-compose
lrwxr-xr-x  1 withsin  staff  63  6  3 09:32 docker-diagnose -> /Applications/Docker.app/Contents/Resources/bin/docker-diagnose
lrwxr-xr-x  1 withsin  staff  62  6  3 09:32 docker-machine -> /Applications/Docker.app/Contents/Resources/bin/docker-machine
lrwxr-xr-x  1 withsin  staff  54  6  3 09:32 notary -> /Applications/Docker.app/Contents/Resources/bin/notary
lrwxr-xr-x  1 withsin  staff  54  6  3 09:32 pinata -> /Applications/Docker.app/Contents/Resources/bin/pinata
$

ということは、Docker for Macのバージョンに固定で問題なければ、Homebrewでインストールしたものは削除しても良いのだろう。しばらくの間は同居させておくことにする。

以上。

■ 関連