使用Docker Toolbox让落后的Docker版本1: Docker Toolbox能够使用Docker
2015-08-17 更新
随着 Docker 1.8 的推出,Docker Toolbox 也随之发布,现在在OSX和Windows上使用Docker更加方便和通用了,因此我们改变了使用Homebrew安装的步骤并对一些说明文进行了修改。
首先
学习并掌握Docker的使用方法,使之能够在一定程度上实现有效利用。首先以Docker为基础,考虑并使用私人环境以及各种用途,达到可用的目标。
搭建一个Docker环境到本地机器上。
在Docker官方网站上有一个名为Docker Toolbox的应用程序,它可以为您准备好Docker工作环境,包括从头开始的所有设置。请将其安装到本地计算机上。
目前 Docker Toolbox 中包含以下软件。
-
- Docker (Docker クライアント)
-
- Docker Machine (Docker Engine が稼働するホストを作ってくれる)
-
- Docker Compose (定義ファイルに基づく Docker イメージ作成 & 稼働, OSX のみ)
-
- Docker Kitematic (Docker 管理 GUI アプリケーション)
- VirtualBox (仮想マシン)
安装完成后,会显示名为“Quick Start”的提示等内容,但首先暂时不要理会它,尝试使用CLI命令继续进行。
第一步
使用docker-machine create命令在VirtualBox环境中创建主机。
$ docker-machine create -d 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
通过查看Virtualbox,可以确认主机已启动。
使用docker-machine创建的机器(docker主机)进行确认。如果创建了多个主机,应该在这里列出多个。
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev virtualbox Running tcp://192.168.99.100:2376
使用docker-machine config命令可以输出用于docker主机选项的值。在执行docker时可以使用它。
$ docker-machine config dev
--tlsverify --tlscacert="/Users/kumakura/.docker/machine/machines/dev/ca.pem" --tlscert="/Users/kumakura/.docker/machine/machines/dev/cert.pem" --tlskey="/Users/kumakura/.docker/machine/machines/dev/key.pem" -H=tcp://192.168.99.100:2376%
暂时尝试运行 docker。(输出 hello world)
$ docker $(docker-machine config dev) run busybox echo hello world
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
cf2616975b4a: Pull complete
6ce2e90b0bc7: Pull complete
8c2e06607696: Pull complete
Digest: sha256:df9e13f36d2d5b30c16bfbf2a6110c45ebed0bfa1ea42d357651bc6c736d5322
Status: Downloaded newer image for busybox:latest
hello world
注册和删除Docker主机环境变量。
$ eval `docker-machine env dev`
$ eval `docker-machine env dev -u`
使用docker-machine启动和停止docker主机。
$ docker-machine start dev
$ docker-machine stop dev
通过docker-machine访问docker主机的ssh。
$ docker-machine ssh dev
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015
Docker version 1.8.1, build d12ea79
docker@dev:~$
使用docker-machine inspect命令来查看Docker主机信息。
虽然下半部分的内容我还不太明白,但估计是有关docker-machine 0.3中新添加的Features的初始值等。
$ docker-machine inspect dev
{
"ConfigVersion": 1,
"Driver": {
"IPAddress": "192.168.99.100",
"SSHUser": "docker",
"SSHPort": 50291,
"MachineName": "dev",
"CaCertPath": "/Users/kumakura/.docker/machine/certs/ca.pem",
"PrivateKeyPath": "/Users/kumakura/.docker/machine/certs/ca-key.pem",
"SwarmMaster": false,
"SwarmHost": "tcp://0.0.0.0:3376",
"SwarmDiscovery": "",
"CPU": 1,
"Memory": 1024,
"DiskSize": 20000,
"Boot2DockerURL": "",
"Boot2DockerImportVM": "",
"HostOnlyCIDR": "192.168.99.1/24"
},
"DriverName": "virtualbox",
"HostOptions": {
"Driver": "",
"Memory": 0,
"Disk": 0,
"EngineOptions": {
"ArbitraryFlags": [],
"Dns": null,
"GraphDir": "",
"Env": [],
"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": "",
"CaCertPath": "/Users/kumakura/.docker/machine/certs/ca.pem",
"CaCertRemotePath": "",
"ServerCertPath": "/Users/kumakura/.docker/machine/machines/dev/server.pem",
"ServerKeyPath": "/Users/kumakura/.docker/machine/machines/dev/server-key.pem",
"ClientKeyPath": "/Users/kumakura/.docker/machine/certs/key.pem",
"ServerCertRemotePath": "",
"ServerKeyRemotePath": "",
"PrivateKeyPath": "/Users/kumakura/.docker/machine/certs/ca-key.pem",
"ClientCertPath": "/Users/kumakura/.docker/machine/certs/cert.pem"
}
},
"StorePath": "/Users/kumakura/.docker/machine/machines/dev"
}
通过使用 docker-machine upgrade 命令可以轻松愉快地更新 Docker 主机,这非常方便和令人高兴。
$ docker-machine upgrade dev
Stopping machine to do the upgrade...
Upgrading machine dev...
Downloading https://github.com/boot2docker/boot2docker/releases/download/v1.8.1/boot2docker.iso to /Users/kumakura/.docker/machine/cache/boot2docker.iso...
Starting machine back up...
Starting VM...