- 試してみた投稿
Docker MachineでDigital OceanにDocker環境を構築する
Docker Machine を使って VirtualBox に Dockerホストを立てる
- 環境
MacOSX 10.10.4
- Docker machineインストール
2015/7/3現在で
0.3.0が最新でした。
$ curl -LO https://github.com/docker/machine/releases/download/v0.3.0/docker-machine_darwin-amd64 mv docker-machine_darwin-amd64 /usr/local/bin/docker-machine
$ chmod +x /usr/local/bin/docker-machine
取得したDigital Oceanのアクセストークンを環境変数に入れる
$ export DIGITALOCEAN_ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxx
- DigitalOceanの場合
--digitalocean-region、--digitalocean-sizeのオプションはなくても動きます。
$ docker-machine create --driver digitalocean --digitalocean-access-token=$DIGITALOCEAN_ACCESS_TOKEN --digitalocean-image "docker" --digitalocean-region "nyc3" --digitalocean-size "512mb" test
Creating SSH key...
Creating Digital Ocean droplet...
To see how to connect Docker to this machine, run: docker-machine env test
Dockerプロセス確認
$ docker-machine ssh test service docker status
docker start/running, process 2076
作成した環境の確認
`
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
test digitalocean Running tcp://xxx.xxx.xxx.xxx:2376
いろいろ取得
$ docker-machine env test
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://xxx.xxx.xxx.xxx:2376"
export DOCKER_CERT_PATH="/Users/YOUR_HOME/.docker/machine/machines/test"
export DOCKER_MACHINE_NAME="test"
# Run this command to configure your shell:
# eval "$(docker-machine env test)"
$ docker-machine config test
--tlsverify --tlscacert="/Users/YOUR_HOME/.docker/machine/machines/test/ca.pem" --tlscert="/Users/YOUR_HOME/.docker/machine/machines/test/cert.pem" --tlskey="/Users/YOUR_HOME/.docker/machine/machines/test/key.pem" -H=tcp://xxx.xxx.xxx.xxx:2376
$ docker-machine inspect test
{
"DriverName": "digitalocean",
"Driver": {
"AccessToken": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"DropletID": xxxxxx,
"DropletName": "",
"Image": "docker",
"MachineName": "test",
"IPAddress": "xxx.xxx.xxx.xxx",
"Region": "nyc3",
"SSHKeyID": xxxxxx,
"SSHUser": "root",
"SSHPort": 22,
"Size": "512mb",
"IPv6": false,
"Backups": false,
"PrivateNetworking": false,
"CaCertPath": "/Users/YOUR_HOME/.docker/machine/certs/ca.pem",
"PrivateKeyPath": "/Users/YOUR_HOME/.docker/machine/certs/ca-key.pem",
"DriverKeyPath": "",
"SwarmMaster": false,
"SwarmHost": "tcp://0.0.0.0:3376",
"SwarmDiscovery": ""
},
"StorePath": "/Users/YOUR_HOME/.docker/machine/machines/test",
"HostOptions": {
"Driver": "",
"Memory": 0,
"Disk": 0,
"EngineOptions": {
"ArbitraryFlags": [],
"Dns": null,
"GraphDir": "",
"Ipv6": false,
"InsecureRegistry": [],
"Labels": [],
"LogLevel": "",
"StorageDriver": "",
"SelinuxEnabled": false,
"TlsCaCert": "",
"TlsCert": "",
"TlsKey": "",
"TlsVerify": true,
"RegistryMirror": [],
"InstallURL": "https://get.docker.com"
},
"SwarmOptions": {
"IsSwarm": false,
"Address": "",
"Discovery": "",
"Master": false,
"Host": "tcp://0.0.0.0:3376",
"Image": "swarm:latest",
"Strategy": "spread",
"Heartbeat": 0,
"Overcommit": 0,
"TlsCaCert": "",
"TlsCert": "",
"TlsKey": "",
"TlsVerify": false,
"ArbitraryFlags": []
},
"AuthOptions": {
"StorePath": "/Users/YOUR_HOME/.docker/machine/machines/test",
"CaCertPath": "/Users/YOUR_HOME/.docker/machine/certs/ca.pem",
"CaCertRemotePath": "",
"ServerCertPath": "/Users/YOUR_HOME/.docker/machine/certs/server.pem",
"ServerKeyPath": "/Users/YOUR_HOME/.docker/machine/certs/server-key.pem",
"ClientKeyPath": "/Users/YOUR_HOME/.docker/machine/certs/key.pem",
"ServerCertRemotePath": "",
"ServerKeyRemotePath": "",
"PrivateKeyPath": "/Users/YOUR_HOME/.docker/machine/certs/ca-key.pem",
"ClientCertPath": "/Users/YOUR_HOME/.docker/machine/certs/cert.pem"
}
},
"SwarmHost": "",
"SwarmMaster": false,
"SwarmDiscovery": "",
"CaCertPath": "",
"PrivateKeyPath": "",
"ServerCertPath": "",
"ServerKeyPath": "",
"ClientCertPath": "",
"ClientKeyPath": ""
}
- VirualBox
$ docker-machine create --driver virtualbox dev
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev
確認
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev virtualbox Running tcp://xxx.xxx.xxx.xxx:2376
いろいろ取得
$ docker-machine env dev
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://xxx.xxx.xxx.xxx:2376"
export DOCKER_CERT_PATH="/Users/YOUR_HOME/.docker/machine/machines/dev"
export DOCKER_MACHINE_NAME="dev"
# Run this command to configure your shell:
# eval "$(docker-machine env dev)"
ログイン
$ docker-machine ssh dev
Boot2Docker version 1.7.0, build master : 7960f90 - Thu Jun 18 18:31:45 UTC 2015
Docker version 1.7.0, build 0baf609
デフォルトパスのtcuserでSSHログイン可能
$ ssh docker@xxx.xxx.xxx.xxx
docker@xxx.xxx.xxx.xxx's password:
Boot2Docker version 1.7.0, build master : 7960f90 - Thu Jun 18 18:31:45 UTC 2015
Docker version 1.7.0, build 0baf609
docker@dev:~$
以上