导读
本系列的docker学习笔者均采用Vagrant和VirtualBox进行,下面我会给出这两款工具的简单介绍。
Vagrant
介绍
Vagrant是hashicorp这家公司的产品,是一个让你可以方便设置你想要的虚拟机的便携式工具,它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。
我们可以通过Vagrant提供的命令行工具vagrant,可以快速启动根据我们事先定义好的Vagrantfile文件,来创建一个或者多个虚拟机。
Vagrantfile是用来定义vagrant project的,使用ruby语法。
安装
Vagrant支持Mac、Window,Centos 等各种平台,下图展示支持的各种平台列表
下载地址:https://www.vagrantup.com/downloads.html
- 查看是否安装成功
1 | # 查看vagrant版本信息 |
使用
添加一个box
格式:vagrant box add 远端的box地址或者本地的box文件名
1 | # 添加 centos/7 的box |
通过这个步骤,vagrant会去box列表中找centos/7这个镜像,如果没有就去官方下载
box的名称我们通过官方提供的地址:https://app.vagrantup.com/boxes/search?page=1 去search
初始化
格式: vagrant init box列表中box的名称
1 | # 新建一个目录,为centos7 |
这样就会在当前目录(centos7)生成一个Vagrantfile的文件,注意每个目录只能存放一个Vagrantfile文件,所以我们要事先定义好我们需要创建系统的目录
启动虚拟机
我们已经通过vagrant init centos/7 命令,得到了vagrantfile文件,下面我们可以通过vagrant up 命令来启动vagrantfile中定义的虚拟机
1 | $ vagrant up |
这样我们就在在Virtualbox中创建了一个虚拟机
- 连接虚拟机
1 | $ vagrant ssh |
Vagrant 的其它基本命令
- 查看命令帮助
1 | $ vagrant --help |
- 查看虚拟机的状态
1 | $ vagrant status |
- 查看box列表
1 | $ vagrant box list |
- 停止虚拟机
1 | $ vagrant halt |
- 销毁虚拟机
1 | $ vagrant destory |
通过自定义Vagrantfile来创建虚拟机
- 编写Vagrantfile,灵活的设置虚拟机的参数
1 | # -*- mode: ruby -*- |
Vagrantfile下载地址: xxxx
- 创建虚拟机
1 | vagrant up |
Docker 安装
在 Mac 平台上安装
在 centos7 平台上安装步骤
官网地址:https://docs.docker.com/install/linux/docker-ce/centos/#install-from-a-package
- 卸载老的版本
1 | $ sudo yum remove docker \ |
安装docker ce (注意docker 有docker ce 和 docker ee 两个版本,我们学习使用docker ce版本)
①、安装依赖包
1 | $ sudo yum install -y yum-utils \ |
②、设置稳定仓库地址
1 | $ sudo yum-config-manager \ |
③、【可选】启用 edge 和 test 仓库
1 | # 启用 --enable |
④、安装稳定版本的docker ce
1
$ sudo yum install docker-ce
⑤、【可选】查看具体的docker ce 版本,这样我们可以在生产环境安装具体的docker ce 版本
1
2
3
4
5
6
7
# 查看docker ce 版本列表
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 18.03.ce-1.el7.centos docker-ce-stable
# 使用命令安装具体的docker ce 版本
$ sudo yum install <FULLY-QUALIFIED-PACKAGE-NAME>
⑥、启动docker
1
$ sudo systemctl start docker
⑦、验证docker是否正确安装,可以通过运行 helloworld 镜像
1
$ sudo docker run hello-world
docker-machine 创建docker主机
如果我们已经在mac平台安装过docker,默认会自带docker-machine;到现在我们已经知道了,可以通过virtualbox这个虚拟机软件直接创建虚拟机,安装docker,得到一台docker主机、也可以通过编写vagrantfile创建虚拟机,安装docker,也能得到一台docker主机、现在我们还可以通过docker-machine命令,来创建一台带有docker的主机
- 查看版本信息
1 | $ docker-machine -v |
- 创建docker虚拟机 (使用 virtualbox 类型的驱动)
1 | $ docker-machine create demo |
你也可以在创建时加上如下参数,来配置主机或者主机上的 Docker。
–engine-opt dns=114.114.114.114 配置 Docker 的默认 DNS
–engine-registry-mirror https://registry.docker-cn.com 配置 Docker 的仓库镜像
–virtualbox-memory 2048 配置主机内存
–virtualbox-cpu-count 2 配置主机 CPU
- 查看虚拟机列表
1 | $ docker-machine ls |
- 进入虚拟机
1 | $ docker-machine ssh demo |
- 停止虚拟机
1 | $ docker-machine stop demo |
现在我们已经在mac(宿主机)上安装了docker,又通过 docker-machine 方式创建,得到了一台docker主机;那么现在我们有这样一种需求,如何让宿主机上的docker client端连接,通过docker-machine创建的docker server端。
步骤
- 查看docker-machine创建虚拟机的环境变量
1 | # 在 mac(宿主机上) 执行 查看docker-machine |
- 设置宿主机的docker环境变量为docker-machine创建的docker主机环境变量
1 | $ eval $(docker-machine env demo) |
- 查看是否修改成功
1 | $ docker version |
这样宿主机的docker client端就已经连接到通过docker-machine创建的docker主机server端,那么我们在本地操作的docker任何命令,直接作用于 docker-machine 创建的docker主机
Docker 在线实验室 ,无需安装,直接使用
地址
https://labs.play-with-docker.com/
介绍
Play With Docker ( Docker 在线实验室) 是一个运行在浏览器中的 Docker Playground,无需安装任何环境,就可以在线体验 Docker