Dockerについての理解を深める 〜その1〜

Dockerは進化が速いので情報が古くなっている場合があります。

いけてる人たちは使っているDockerについて、複数回にわけて理解を深めていきます。
今回はDockerを扱うツールが入ったDocker Toolboxとdocker-machineについて解説していきます。

動作環境

2016/02/13現在で以下のバージョンで動作確認をしています。

$ docker --version
Docker version 1.9.1, build a34a1d5

$ docker-machine --version
docker-machine version 0.5.5, build 02c4254

$ docker-compose --version
docker-compose version 1.5.2, build 7240ff3

Docker Toolbox

Docker Toolbox | Docker

Docker Toolboxとは、VMでDocker用の仮想環境を立ち上げて簡単にDockerを使えるようにしたツールです。

この中には、

  • VirtalBox
  • docker
  • docker-machine
    • docker用の仮想環境を管理するツール
  • docker-compose
    • 複数のdockerコンテナを1つのファイルで管理することができる

などが入っています。

docker-machine

docker-machineで使うコマンドを紹介します。

ls

マシンリストを表示します。

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

create

dockerマシーンを作成します。

$ docker-machine create --driver virtualbox default
INFO[0000] Creating CA: /Users/akaimo/.docker/machine/certs/ca.pem
INFO[0000] Creating client certificate: /Users/akaimo/.docker/machine/certs/cert.pem
INFO[0002] Downloading boot2docker.iso to /Users/akaimo/.docker/machine/cache/boot2docker.iso...
INFO[0141] Creating SSH key...
INFO[0141] Creating VirtualBox VM...
INFO[0149] Starting VirtualBox VM...
INFO[0150] Waiting for VM to start...
INFO[0182] "default" has been created and is now the active machine.
INFO[0182] To point your Docker client at it, run this in your shell: $(docker-machine env default)

env

dockerマシーンを操作するためには環境変数を設定する必要があります。

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/shu/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env default)

出力されたコマンドを一つずつ実行するのは面倒なので、以下のコマンドを実行します。

$ eval $(docker-machine env default)

stop

dockerマシーンを停止させます。

$ docker-machine stop default
(default) Stopping VM...
Machine "default" was stopped.

start

dockerマシーンを起動します。

$ docker-machine start default
(default) Starting VM...
Machine "default" was started.
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

dockerマシーンのIPが変わっている可能性があるので、環境変数の設定を行う必要があります。

ssh

dockerマシーンにssh接続します。

$ docker-machine ssh default
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.10.1, build master : b03e158 - Thu Feb 11 22:34:01 UTC 2016
Docker version 1.10.1, build 9e83765
docker@default:~$

rm

dockerマシーンを削除します。

$ docker-machine rm default