2017年10月5日木曜日

VirtualBox 上で docker-machine を使ってみた

概要

VirtualBox 上で docker-machine コマンドを試してみました
事前に VirtualBox および docker for Mac のインストールを行っておいてください

環境

  • macOS X 10.12.6
  • docker 17.09.0-ce
  • docker-machine 0.12.2
  • VirtualBox 5.1.26 r117224 (Qt5.6.2)

コンテナホストの作成

docker-machine には VirtualBox 用のドライバありこれを使うことで簡単にコンテナホストを作成することができます

  • docker-machine create --driver virtualbox dev
Creating CA: /Users/hawksnowlog/.docker/machine/certs/ca.pem
Creating client certificate: /Users/hawksnowlog/.docker/machine/certs/cert.pem
Running pre-create checks...
(dev) Image cache directory does not exist, creating it at /Users/hawksnowlog/.docker/machine/cache...
(dev) No default Boot2Docker ISO found locally, downloading the latest release...
(dev) Latest release for github.com/boot2docker/boot2docker is v17.09.0-ce
(dev) Downloading /Users/hawksnowlog/.docker/machine/cache/boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v17.09.0-ce/boot2docker.iso...
(dev) 0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%
Creating machine...
(dev) Copying /Users/hawksnowlog/.docker/machine/cache/boot2docker.iso to /Users/hawksnowlog/.docker/machine/machines/dev/boot2docker.iso...
(dev) Creating VirtualBox VM...
(dev) Creating SSH key...
(dev) Starting the VM...
(dev) Check network to re-create if needed...
(dev) Found a new host-only adapter: "vboxnet1"
(dev) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env dev

作成できたら確認してみましょう

  • docker-machine ls
NAME   ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
dev    -        virtualbox   Running   tcp://192.168.99.100:2376           v17.09.0-ce

ホストオンリーアダプタ (vboxnet1) を自動で追加します
起動は boot2docker.iso を使って ISO からブートしています

VirtualBox を起動して GUI で確認することもできます
docker_machine_with_vb1.png

作成したコンテナホストでコンテナを起動してみる

ではコンテナを作成してみます
まず docker コマンドを対象のホストに対して実行できるように設定を読み込みます

  • eval $(docker-machine env dev)

これで dev コンテナホストに対して docker コマンドを投げられるようになりました

  • docker run -d -p 80:80 nginx

で dev コンテナホスト上にコンテナが作成されます
先ほど docker-machine ls で確認できた IP の 80 番にアクセスしてみましょう

これで nginx のデフォルトのページが確認できると思います
ローカルではなく作成したコンテナホスト上でコンテナが起動しています

その他

コンテナホストの停止
停止後に ls を実行すると Stopped になっています

  • docker-machine stop dev

コンテナホストの起動
--restart=always でコンテナを作成していればコンテナホストの起動後でもコンテナが自動起動します

  • docker-machine start dev

SSH ログイン
直接コンテナホストに入って docker コマンドを実行できます

  • docker-machine ssh dev

最後に

VirtualBox 上で docker-machine を使ってコンテナホストを作成してみました
これを応用すれば docker swarm も簡単にできます
VirtualBox + docker swarm の検証もそのうち紹介できればと思います

参考サイト

0 件のコメント:

コメントを投稿