文章目录
  1. 1. VAGRANT
    1. 1.1. Vagrantfile
  2. 2. CoreOS

VAGRANT是虚拟机管理工具,可以方便的添加和启动虚拟机; CoreOS是专为docker而设计的系统, 每一个应用都运行在docker环境下。 当VAGRANT + CoreOS时,你就可以很容易在windows下体验学习docker;虽然可以使用Boot2docker,但是多了一个选择, 且CoreOS文档也支持在VAGRANT下运行。

VAGRANT

VAGRANT支持virtualbox 和VMWare的虚拟机,默认是virtualbox。 如果使用VMWare的虚拟机,需要在Vagrantfile里指定,详情可参考 VAGRANT官方文档。 在安装VAGRANT之前, 要先安装好virtualbox。

VAGRANT下的虚拟机image称为box, 在启动虚拟机之前, 需要先添加box。 VAGRANT有像Docker HUB一样的Box Repository, 如下 vagrant box add 命令中的 可以使用USER/BOX的形式,如hashicorp/precise32, VAGRANT会从repository下载。

$ vagrant box add <title> <url>     # 添加box
$ vagrant init <title>              # 生成 Vagrantfile
$ vagrant up                        # 启动虚拟机
$ vagrant ssh                       # ssh 连接到虚拟机

启动/停止相关的命令:

$ vagrant up
$ vagrant halt
$ vagrant suspend
$ vagrant resume
$ vagrant destroy

box相关的命令:

$ vagrant box list
$ vagrant box remove <name>
$ vagrant reload <vm-name>

Vagrantfile

vagrant init <title> 会在当前路径下生成Vagrantfile, 保存了虚拟机的配置信息, 后续命令都会使用到文件。 只说点重要的。

  • 网络配置相关

    config.vm.network :forwarded_port, guest: 80, host: 8080
    config.vm.network :public_network
    config.ssh.forward_agent = true
    
  • 共享文件夹映射

    config.vm.synced_folder "../data", "/vagrant_data"
    
  • provision

    config.vm.provision :shell, :path => "boot.sh"
    

CoreOS

我是跟着文档 Running CoreOS on Vagran 开始的。

$ git clone https://github.com/coreos/coreos-vagrant.git
$ cp config.rb.sample config.rb
$ cp user-data.sample user-data

user-data里有一处需要改动,先找到如下的行,有两处,只需要取消一行前的注释符#即可。user-data是YML格式的文件, 需要取消注释的是etcd下的,因为默认是启动服务项etcd.service。 如果要换成启动etcd2.service, 那就相应的取消etcd2下的discovery

#discovery: https://discovery.etcd.io/<token>

然后再将<token>换成从https://discovery.etcd.io/new返回的结果。

接下来, 就可以启动CoreOS虚拟机了。 正常情况下会自动下载box, 但是网络环境的问题, 会出现域名无法解析的问题, 下载coreos box失败。需要自备梯子了

$ vagrant up

本人是在通过另外的网络下载了coreos_production_vagrant.box, 使用了稳定的版本, 需要改动config.rb里的$update_channel='stable'。 在启动之前就需要手动先添加box了。

$ vagrant box add coreos-stable ../boxes/coreos_production_vagrant.box
$ vagrant up
$ vagrant ssh

准备就绪, 就可以开始 docker之路了

$ docker pull ubuntu:latest
$ docker images
$ docker run -t -i ubuntu:latest /bin/bash
文章目录
  1. 1. VAGRANT
    1. 1.1. Vagrantfile
  2. 2. CoreOS