docker

Mac に homebrew で docker 入れたい 2017年末版

More than 1 year has passed since last update.

今日は2017年11月21日。
macOS に docker 開発環境を構築するには Docker for Mac アプリをインストールすればいいのです。
Virtual Box も必要なくなり全体の構成も随分すっきりしましたね。もう記事にするほどのこともなくなってしまった。
ところが homebrew を積極的に使いたい方は、却って悩んでいるかも。
この数年いろんなインストール手順がQiitaに書かれてきたけど、今は何が正解なのか、と。
ならばここにまとめましょう。

一応環境を : macOS High Sierra 10.13.1

homebrew 使いのための docker 環境構築手順 2017年末版

結論先に。

$ brew cask install docker
$ open /Applications/Docker.app

これで、Docker Community Edition がインストールされ、 docker docker-machine docker-compose コマンドが実行できるようになります。

$ docker --version
Docker version 17.09.0-ce, build afdb6d4

$ docker-machine version
docker-machine version 0.12.2, build 9371605

$ docker-compose version
docker-compose version 1.16.1, build 6d1ac21
docker-py version: 2.5.1
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2j  26 Sep 2016

動いた動いた。
bash-completion 使いたいなら追加で次のコマンドを実行しましょう。必要なファイルは Docker.app アプリに同梱されています。

bash-completion 入れていなければ、まず入れます。

$ brew install bash-completion
$ echo '  [ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion' >> ~/.bash_profile

その次にシンボリックリンクを作成すれば完成。

$ ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion /usr/local/etc/bash_completion.d/docker
$ ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.bash-completion /usr/local/etc/bash_completion.d/docker-machine
$ ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.bash-completion /usr/local/etc/bash_completion.d/docker-compose

では Docker をお楽しみください。
ここから先は https://docs.docker.com/docker-for-mac/ を参考に進むのが良いでしょう。日本語ドキュメントは無い?よね。

何が困りごとかというと

homebrew で検索した時に、選択肢がいろいろ出てくるのがよくない。

$ brew search docker
==> Searching local taps...
boot2docker                     docker-compose-completion       docker-machine-nfs
boot2docker-completion          docker-credential-helper        docker-machine-parallels
docker                          docker-gen                      docker-swarm
docker-clean                    docker-machine                  docker2aci
docker-cloud                    docker-machine-completion       docker@1.11
docker-completion               docker-machine-driver-vultr     docker@1.71
docker-compose                  docker-machine-driver-xhyve
==> Searching taps on GitHub...
caskroom/cask/docker            caskroom/cask/docker-toolbox    caskroom/versions/docker-edge
==> Searching blacklisted, migrated and deleted formulae...

最低限、どれとどれとどれを入れればいいんですかね?
正解は、 caskroom/cask/docker 一つ入れればいいのです。それ以外は勝手知ったる先人のためのものでしょう。

  • homebrew を検索して見つかる boot2docker docker docker-machine docker-compose と homebrew cask の docker-toolbox は入れる必要なし。というか入れたら困ったことが起きるはず。試してませんが。
  • homebrew の docker-completion docker-machine-completion docker-compose-completion は使用しない。というか入れたら困ったことが起きるはず。試してませんが、フォーミュラ 読むと homebrew cask の docker 使ってないから駄目だろうね。
  • docker-cleandocker-cloud ってなんだろね。

おわり。