Docker for Macでlocalhostでアクセス可能になった


Version 1.11.0-beta8まで

Docker for Mac のBeta版では、これまで下記のように docker.local でアクセスする必要がありました。

$ docker run -d redis:3.0.7-alpine
$ redis-cli -h docker.local

イケてない。。
dokcer-machine+Virtualbox 向けに作ってきたシェルスクリプトなどでは
localhost 向けが前提になっていて、資産が活用できませんでした。
ので、 docker-machine + Virtualboxのまま移行できず悶々とする日々。。

docker-machine + Virtualbox の問題点

docker toolbox をダウンロード、インストールすればすぐ使える、この組み合わせはとても手軽でよいのですが、
いくつか不満点がありました。

  • eval "$(docker-machine env default)" が必要
  • 動作がちょっと重い
  • ポートフォワーディングの設定が必要

特にポートフォワーディング設定については、忘れたころにハマリポイントになっていて、地味にコストでした。
設定が正しければredisへは以下でアクセスできます。

$ redis-cli

docker for macでも同じようにアクセスしたいのだけど、技術力不足のためできず。。

Version 1.11.0-beta9から

docker for macの Version 1.11.0-beta9 でVPNモードがデフォルトになりました。
これにより、以下の様に変更されます。

- docker.local will no longer work in Beta 9 or later
- When you expose a port, it will be available at localhost

(意訳)

- docker.localはそのうち消えるよ
- exposeしたポートはlocalhostでアクセスできるよ

つまり、redisへのアクセスはこれだけになりました。

$ redis-cli

こ!れ!は!

docker-machine + VirtulaBox 資産を活用できる

今回の変更で、これまでの資産をそのまま流用できることになったので、docker for macへ移行します。
Virtualboxさん、今まで大変お世話になりました。