Docker Machine を試す!
docker-machine
docker-machine は Docker ホストを管理するツールで、ホストとなる Docker コンテナ起動サーバが、VM や AWS、 Digital Ocean などの ホストへ接続し実行する事で、あたかも local で docker コンテナが動いているかのように振る舞うツール。
Docker コンテナ管理ツールとしても仕様できるみたい。
docker インストール
まずは、 dokcer
のインストール
# Docker install
wget -qO- https://get.docker.com/ | sh
# version を確認しておく。
docker --version
# 以下が表示される
# Docker version 1.8.2, build 0a8c2e3
# ユーザーを docker グループに追加
sudo usermod -aG docker $USER
docker-machine インストール
続いて、 docker-machine
をインストールする。
cd ~/Download
wget https://github.com/docker/machine/releases/download/v0.4.1/docker-machine_linux-amd64
sudo mkdir -p /opt/bin
sudo mv docker-machine_linux-amd64 /opt/bin/docker-machine
sudo chmod +x /opt/bin/docker-machine
# docker-machine version 確認
# /opt/bin にパスが通っている事!
docker-machine -v
# 以下のようにバージョンが表示される
# docker-machine version 0.4.1 (e2c88d6)
# docker-machin の作成
# docker-machine [--debug] create --driver virtualbox [マシン名]
docker-machine --debug create --driver virtualbox dev
# エラーがでて以下を実行しろと怒られたので実行。
# sudo /etc/init.d/vboxdrv setup
# 再実行時、既に マシンが存在すると怒られるので、以下で削除できる
# docker-machine rm dev
# docker-machine の一覧表示
docker-machine ls
# 以下のような結果が表示される
# NAME ACTIVE DRIVER STATE URL SWARM
# dev * virtualbox Running tcp://192.168.99.100:2376
# ホストマシンのDocker Remote API のエンドポイントや、certファイルのパスが表示される
docker-machine env dev
# 以下のような結果が表示される
# export DOCKER_TLS_VERIFY="1"
# export DOCKER_HOST="tcp://192.168.99.100:2376"
# export DOCKER_CERT_PATH="/home/username/.docker/machine/machines/dev"
# export DOCKER_MACHINE_NAME="dev"
# # Run this command to configure your shell:
# # eval "$(docker-machine env dev)"
# 指示通り実行
eval "$(docker-machine env dev)"
# 上記コマンドで、 `virtual-machine` 上で動くコンテナをあたかもローカルで動いているかのように操作できる。
doker images
# REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
# docker/gitlab latest 8e122d458cf4 5 hours ago 654.1 MB
# sameersbn/gitlab 8.0.4 e6964ca49453 3 days ago 653.5 MB
# sameersbn/redis latest 7bfd2b846d7b 6 weeks ago 196.9 MB
# sameersbn/ubuntu 14.04.20150825 2bde99560607 6 weeks ago 194.8 MB
# sameersbn/postgresql 9.4-3 6fc4cce07194 9 weeks ago 231.6 MB
# 後は docker コマンドで自由に操作するだけ!
Tips
# ワンライナコマンドオプションの表示
docker-machine config dev
# 以下のような結果が表示される
# --tlsverify --tlscacert="/home/username/.docker/machine/machines/dev/ca.pem" --tlscert="/home/username/.docker/machine/machines/dev/cert.pem" --tlskey="/home/username/.docker/machine/machines/dev/key.pem" -H=tcp://192.168.99.100:2376%
# これを利用して以下でも起動できるらしい
# docker $(docker-machine config dev) ps
# マシンのストップ
docker-machine stop dev
# ストップしたマシンのスタート
docker-machine start dev
# docker machine へ ssh 接続
docker-machine ssh dev
# ## .
# ## ## ## ==
# ## ## ## ## ## ===
# /"""""""""""""""""\___/ ===
# ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
# \______ o __/
# \ \ __/
# \____\_______/
# _ _ ____ _ _
# | |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
# | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
# | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
# |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
# Boot2Docker version 1.8.2, build master : aba6192 - Thu Sep 10 20:58:17 UTC 2015
# Docker version 1.8.2, build 0a8c2e3
# docker machine へ ssh 経由でコマンド発行
docker-machine ssh dev "hostname && uname -a"
# 以下が表示される
# dev
# Linux dev 4.0.9-boot2docker #1 SMP Thu Sep 10 20:39:20 UTC 2015 x86_64 GNU/Linux