Docker Toolboxをインストールしたら、Docker Machineを作成します。
Docker Toolboxをインストールしていない人はまずはこちらを参考にインストールしてください。
Docker Machineの作成はアプリ、コマンドどちらからでも可能です。
Docker Machineの作成
-
アプリから
Launchpadから「Docker Quickstart Terminal」を起動させます。
作成したら
docker-machine
コマンドで確認ができます。
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default * virtualbox Running tcp://192.168.99.100:2376
-
コマンドから
docker-machine create
コマンドで作成します。$ docker-machine create --driver virtualbox default2 Running pre-create checks... Creating machine... Waiting for machine to be running, this may take a few minutes... Machine is running, waiting for SSH to be available... Detecting operating system of created instance... Provisioning created instance... Copying certs to the local machine directory... Copying certs to the remote machine... Setting Docker configuration on the remote daemon... To see how to connect Docker to this machine, run: docker-machine env default2
こちらも作成が完了したら
docker-machine ls
コマンドで確認ができます。
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default - virtualbox Running tcp://192.168.99.100:2376 default2 - virtualbox Running tcp://192.168.99.101:2376
また、確認だけならVirtualboxからでも確認が可能です。
defaultがアプリ、default2がコマンドから作成したDocker Machineとなります。
アプリ、コマンドどちらで作成したにせよ、操作はコマンドで行っていきます。環境変数のセットアップ
docker-machine create
コマンドで作成した場合、環境変数を設定する必要があります。
設定する環境変数はdocker-machine env <Docker Machine名>
で確認ができます。defaultとdefault2の両方の環境変数を確認してみましょう。
-
defaultの場合
$ docker-machine env default export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.99.100:2376" export DOCKER_CERT_PATH="/Users/kohei/.docker/machine/machines/default" export DOCKER_MACHINE_NAME="default" Run this command to configure your shell: eval "$(docker-machine env default)"
-
default2の場合
$ docker-machine env default2 export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.99.101:2376" export DOCKER_CERT_PATH="/Users/kohei/.docker/machine/machines/default2" export DOCKER_MACHINE_NAME="default2" Run this command to configure your shell: eval "$(docker-machine env default2)"
どちらも行末を見ると、
eval "$(docker-machine env default2)"
の記載があります。
このコマンドを実行することで上記のexportしている環境変数を呼び出し、設定しています。アプリから起動した場合は自動的に設定されるため設定は不要ですが、
一旦、ターミナルを抜けると設定が消えてしまうので、新たに設定し直す必要があります。また、設定されているかどうかは
env | grep DOCKER
で確認できます。それではdefault2の環境変数を設定します。
$ eval "$(docker-machine env default2)" $ env | grep DOCKER DOCKER_HOST=tcp://192.168.99.101:2376 DOCKER_MACHINE_NAME=default2 DOCKER_TLS_VERIFY=1 DOCKER_CERT_PATH=/Users/kohei/.docker/machine/machines/default2
これで
docker
コマンドを利用してDocker Machineへアクセスできるようになりました。
[設定前] $ docker ps Cannot connect to the Docker daemon. Is the docker daemon running on this host?
[設定後] $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
また、どのDocker Machineへ現在アクセス可能かを確認するにはdocker-machine ls
コマンドを利用します。$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default - virtualbox Running tcp://192.168.99.100:2376 default2 * virtualbox Running tcp://192.168.99.101:2376
"ACTIVE"の項目が"*"になっている方がアクセス可能な状態です。
現在、default2がActiveとなっていますが、これをdefaultへ変更します。
$ eval "$(docker-machine env default)" $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default * virtualbox Running tcp://192.168.99.100:2376 default2 - virtualbox Running tcp://192.168.99.101:2376
defaultの"ACTIVE"が"*"に変更されました。
このように、もし、アクセスするDocker Machineを変更したい場合は、セットアップコマンドで変更してください。
また、ローカル環境からいろんな環境へアクセスできるのは便利ですが、誤った環境へ作業を行わないよう注意が必要です。
作業を行う際は必ずdocker-machine ls
などで、どの環境へアクセスしている状態かを確認するようにしましょう。 -
-
コマンドから