使用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...
广告
将在 10 秒后关闭
bannerAds