Lab Environment Quick Setup

Please install vagrant before using vagrant files to quick start.

Download link: https://www.vagrantup.com/downloads.html

For what vagrant is and how to use it with virtualbox and vmware fusion, please reference https://www.vagrantup.com/docs/

And please install git if you don’t have one on your machine(https://git-scm.com/)

Vagrant with one node docker engine

we will use vagrant to create one linux virtual machine and install docker automatically.

$ git clone https://github.com/xiaopeng163/docker-k8s-lab
$ cd docker-k8s-lab/lab/docker/single-node

There are two kinds of Linux, one is Ubuntu16.04, and one is CentOS7, please chose one, for example

$ git clone https://github.com/xiaopeng163/docker-k8s-lab
$ cd docker-k8s-lab/lab/docker/single-node
$ cd vagrant-centos7
$ vagrant up

vagrant up will take some time to create a virtual machine, after finished, you can use vagrant ssh ssh into this machine. like

$ vagrant status
Current machine states:

docker-host               running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.
$ vagrant ssh
Last login: Wed Jan 24 14:53:38 2018 from 10.0.2.2
[vagrant@docker-host ~]$ docker version
Client:
Version:      18.01.0-ce
API version:  1.35
Go version:   go1.9.2
Git commit:   03596f5
Built:        Wed Jan 10 20:07:19 2018
OS/Arch:      linux/amd64
Experimental: false
Orchestrator: swarm

Server:
Engine:
  Version:    18.01.0-ce
  API version:        1.35 (minimum version 1.12)
  Go version: go1.9.2
  Git commit: 03596f5
  Built:      Wed Jan 10 20:10:58 2018
  OS/Arch:    linux/amd64
  Experimental:       false

Vagrant with two node docker engine

$ git clone https://github.com/xiaopeng163/docker-k8s-lab
$ cd docker-k8s-lab/lab/docker/multi-node/vagrant
$ vagrant up
Bringing machine 'docker-node1' up with 'virtualbox' provider...
Bringing machine 'docker-node2' up with 'virtualbox' provider...
==> docker-node1: Importing base box 'ubuntu/xenial64'...
==> docker-node1: Matching MAC address for NAT networking...
==> docker-node1: Checking if box 'ubuntu/xenial64' is up to date...
......

The first time you run vagrant up will take some time to finished creating the virtual machine, and the time will depend on your network connection situation.

It will create two ubuntu 16.04 VMs based on the base box from the internet, and provision them.

We can use vagrant ssh to access each node:

$ vagrant status
Current machine states:

docker-node1              running (virtualbox)
docker-node2              running (virtualbox)

This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
$ vagrant ssh docker-node1
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-51-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


Last login: Mon Dec  5 05:46:16 2016 from 10.0.2.2
ubuntu@docker-node1:~$ docker run -d --name test2 hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
52af64b1a65e3270cd525095974d70538fa9cf382a16123972312b72e858f57e
ubuntu@docker-node1:~$

You can play with docker now ~~

If you want to recovery your environment, just:

$ vagrant halt
$ vagrant destroy
$ vagrant up