Docker Quickstart TerminalでなぜかDocker起動しないのでスクリプトを作った

Mac(el capitan)にDocker Toolboxを入れて、Docker Quickstart Terminalで起動!!という時になぜかクジラどころかコマンドすら実行していないのでスクリプトを作りました。

そもそもdockerを起動するためにわざわざappを開くのが面倒くさい…


MacでDockerを使用する際、DockerはLinuxカーネルを使用しているので、Linuxの仮想環境を作る必要があります。 そのdocker用の仮想環境を管理しているのがdocker-machineです。 またdocker-machineによって、ホストからゲストのdockerを直接操作できるようになります。

Docker Quickstart Terminal.appはホストからゲストのdockerコマンドを実行できるようにした状態でターミナルを開きます。

Docker Quickstart Terminalの動きはざっくりですが

  1. defaultという VM を持っていないときvirtualBoxでdefaultという名前の VM を作る

  2. defaultをdocker-machine起動する

  3. 環境変数の設定

なのでdefaultを作った状態を前提として、defaultのON,OFFを切り替えるスクリプトを作りました。

#! /bin/bash

count=`ps -ef | grep VirtualBox | grep -c default`
if [ $count = 0 ];
then
    echo "start VM default"
    docker-machine start default
    eval $(docker-machine env default)
else
    echo "stop VM default"
    docker-machine stop default
fi

※ただプロセスでVirtualBoxとdefaultがかいてある行数を取得しているだけなのでdefault〜というVMを持っている場合には適用できませんね


ターミナルで直接defaultを作るコマンド

$ docker-machine create --driver virtualbox default

docker-machine によって管理しているゲスト一覧

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.11.2


参考

Get started with Docker Machine and a local VM