在VirtualBox和Vagrant中安装Docker

  在  VirtualBox 和 Vagrant中安装Docker,下面以Windows环境为例子。

安装VirtualBox 和 Vagrant

  首先下载安装VirtualBox 和 Vagrant的windows版本,两个都安装完成后,假设Vagrant在D:\HashiCorp\Vagrant目录下。

1. cmd进入DOS,进入目录D:\HashiCorp\Vagrant\bin,一般标准命令是:

vagrant init hashicorp/precise32

这会自动下载precise32 Ubuntu Linux版本,但是因为国内网络慢,可通过迅雷事先下载,在 http://www.vagrantbox.es/ 这里下载更多不同系统甚至是已经配置好环境直接可以用的box,在其中我们发现precise32和precise64,通过copy按钮复制到迅雷下载。这里下载precise64为案例。

2. 下载precise64完成后,是一个precise64.box文件,拷贝到D:\HashiCorp\Vagrant\bin目录下。运行:

vagrant box add base precise64.box

base 表示指定默认的box,也可以为box指定名称,使用base时,之后可以直接使用 vagrant init 进行初始化,如果自行指定名称,则初始化的时候需要指定box的名称。

3.设置好box之后,在当前工作目录运行:

vagrant init

这会生成Vagrantfile文件,如需要修改可编辑器打开,这里我们无需修改。至此vagrant正常安装,这时观看VirtualBox管理台中会有一个实例在运行,如下图:

4. 在命令端登陆到虚拟机中去,执行
vagrant ssh
出现"Welcome to Ubuntu 12.04 LTS...."字样就说明ok了。这时,原来的DOS提示符变成了Linux下的提示符,表示你已经进入了Linux系统。

安装Docker

  Ubuntu安装好后,就可以在其中安装Docker,Docker的Ubuntu安装方法中已经详细列出安装方法,下面是实践中的步骤:

首先因为我们安装的是Ubuntu Precise 12.04 (LTS) (64-bit),其内核是3.2 kernel,而Docker是基于内核3.8,因此我们需要升级Ubuntu。

$ sudo apt-get update
$ sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring

然后通过VirtualBox管理台重启。

准备就绪,下面开始安装:

1. 确认ls /usr/lib/apt/methods/https 是否存在,如果没有,下面安装:

apt-get update
apt-get install apt-transport-https

2. 将Docker仓储key加入apt 源列表:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

3.下面开始正式安装:

$ sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update
$ sudo apt-get install lxc-docker

4.键入命令,如果没有curl,通过apt-get install curl首先安装

$ curl -s https://get.docker.io/ubuntu/ | sudo sh

5. 上述步骤完成后,检查是否存在/etc/init.d/docker 这个文件,如有表示安装完成,通过VirtualBox管理台,ps-ax可以看到docker正在运行。

运行Docker

1. 为了确认docker安装正常,键入:

sudo docker run -i -t ubuntu /bin/bash

你会发现进入了docker,前面提示符不一样,键入exit退出。

2.测试应用输出:

sudo docker run ubuntu /bin/echo "Hello World"

如果输出了Hello World,表示正常。

此次,Docker中的在线演示都可以在本地实现了。

相关参考:

Docker的八种用途

使用Docker创建两个容器的应用

Docker两个开源PAAS项目flynn和deis的比较


10个基于DOCKER的顶尖开发工具