Docker for Mac private beta

Docker for Macのプライベートβ招待きた!

インストール時、defaultってvmイメージがあると中にあるコンテナのイメージを持ってきてくれた

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER    ERRORS  
default   -        virtualbox   Stopped                 Unknown  
dev       -        virtualbox   Stopped                 Unknown  

スタート画面

メニュー。メニューのDashboardはkitematic起動だった

mac上で直接docker動いてるv

$ uname
Darwin

$ pgrep -fl docker
18665 /Applications/Docker.app/Contents/MacOS/com.docker.osxfs --addr unix:/var/tmp/com.docker.osxfs.socket --path /  
18757 /Applications/Docker.app/Contents/MacOS/com.docker.slirp --socket /var/tmp/com.docker.slirp.socket  
18825 /Applications/Docker.app/Contents/MacOS/com.docker.db --url=file:///var/tmp/com.docker.db.socket --git /Users/lorentzca/Library/Containers/com.docker.docker/Data/database  
18894 /Applications/Docker.app/Contents/MacOS/com.docker.driver.amd64-linux -addr unix:/var/tmp/docker.sock -detach  
18967 /bin/sh -c while kill -0 44132 2>/dev/null; do  
sleep 1  
done  
kill -0 18665 2>/dev/null  
if [ $? -eq 0 ]; then  
  echo "[WatchDog  ] Terminating com.docker.osxfs"
  kill -2 18665  2>/dev/null
fi  
kill -0 18757 2>/dev/null  
if [ $? -eq 0 ]; then  
  echo "[WatchDog  ] Terminating com.docker.slirp"
  kill -2 18757  2>/dev/null
fi  
kill -0 18825 2>/dev/null  
if [ $? -eq 0 ]; then  
  echo "[WatchDog  ] Terminating com.docker.db"
  kill -2 18825  2>/dev/null
fi  
kill -0 18894 2>/dev/null  
if [ $? -eq 0 ]; then  
  echo "[WatchDog  ] Terminating com.docker.driver.amd64-linux"
  kill -2 18894  2>/dev/null
fi

18987 /Applications/Docker.app/Contents/MacOS/com.docker.driver.amd64-linux -addr unix:/var/tmp/docker.sock -detach  
19119 /Applications/Docker.app/Contents/MacOS/com.docker.driver.amd64-linux -xhyve /Users/lorentzca/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/xhyve.args  
19125 /Applications/Docker.app/Contents/MacOS/com.docker.driver.amd64-linux -xhyve /Users/lorentzca/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/xhyve.args  
19126 /Library/PrivilegedHelperTools/com.docker.vmnetd  
49487 /Library/PrivilegedHelperTools/com.docker.vmnetd  

docker-compose等も同梱
docker-machineも同梱されてるけど何に使うんだろ って思ったけどプロバイダをawsとかで使うためか

$ ls -l $(which docker)
lrwxr-xr-x  1 lorentzca  staff  65  4 14 09:50 /usr/local/bin/docker@ -> /Users/lorentzca/Library/Group Containers/group.com.docker/bin/docker

$ ls -l /Users/lorentzca/Library/Group\ Containers/group.com.docker/bin/docker
lrwxr-xr-x  1 lorentzca  staff  54  4 14 09:57 /Users/lorentzca/Library/Group Containers/group.com.docker/bin/docker@ -> /Applications/Docker.app/Contents/Resources/bin/docker

$ ls -l /Applications/Docker.app/Contents/Resources/bin
total 167504  
-rwxr-xr-x@ 1 lorentzca  admin  10389328  4  6 05:27 docker*
-rwxr-xr-x@ 1 lorentzca  admin   4960916  4  6 05:27 docker-compose*
-rwxr-xr-x@ 1 lorentzca  admin   3166304  4  6 05:27 docker-diagnose*
-rwxr-xr-x@ 1 lorentzca  admin   8600848  4  6 05:27 docker-diagnose-upload*
-rwxr-xr-x@ 1 lorentzca  admin  40736560  4  6 05:27 docker-machine*
-rwxr-xr-x@ 1 lorentzca  admin       118  4  6 05:27 notary*
-rwxr-xr-x@ 1 lorentzca  admin  10531628  4  6 05:27 notary.bin*
-rwxr-xr-x@ 1 lorentzca  admin       118  4  6 05:27 pinata*
-rwxr-xr-x@ 1 lorentzca  admin   7348432  4  6 05:27 pinata.bin*

dockerコマンド普通に使えた

どうやって動いてるのか

xhyveというosx(yosemite以降)標準搭載のハイパーバイザ上にapline linuxをdocker engineとして立てて実現しているらしい

図のDocekr Engine部分が今まではdocker-machine使って立てたvirtualboxのvmだったりしたのが、xhyveのapline linuxに変わった感じかな?

まとめ

  • とりあえず普通に使えそう
  • eval "$(docker-machine env default)"いちいちしなくていいの超楽
  • xhyve初めて知った
  • Alpine Linux熱い
  • もっと詳しいアーキテクチャ知りたし