今天开始要真正全面系统学习Docker了 💪
学习资源依然为慕课网实战课程,购买链接:系统学习Docker 践行DevOps理念
我们学习Docker之前,先了解下什么是容器呢?

我们从上图左侧可以看到 在一个物理主机上我们通过共享Kernel创建不同的容器,在不同的容器中运行不同的应用。
容器是APP层面的隔离,虚拟化是物理资源层面的隔离。
官方下载网站:https://docs.docker.com/install/
在Mac上安装Docker
安装很简单只需要按照官方文档来就可以了:https://docs.docker.com/docker-for-mac/install/
安装成功后我们可以在命令行下查看安装版本
1 | ➜ ~ docker --version |
我们通过这种方式安装 直接包含了很多工具:
What the install includes: The installation provides Docker Engine, Docker CLI client, Docker Compose, >Docker Machine, and Kitematic.
其中的Kitematic是一个图形化管理工具,我们可以通过点击上面链接直接下载。
安装使用 Vagrant 、VirtualBox
Vagrant 安装参考文件:https://www.vagrantup.com/downloads.html
VirtualBox 安装参考文件:https://www.virtualbox.org/wiki/Downloads
VirtualBox是一个虚拟机管理工具,我们可以只用VirtualBox直接创建管理虚拟机。
Vagrant是一款更加方便的虚拟机管理工具。
安装成功之后,我们可以在命令行模式下进行验证:
1 | ➜ centos vagrant --help |
我们新建一个空目录centos,然后执行初始化虚拟机命令:
1 | ➜ centos vagrant init centos/7 |
执行完上面命令之后会生成一个Vagrantfile文件,这个文件描述了我们将要创建一个什么样的虚拟机。
1 | ➜ centos cat Vagrantfile | grep -v '#' |
文件内容描述出我们要安装的是一个centos7的虚拟机。
下面我们执行真正的安装命令:
1 | ➜ centos vagrant up |
up命令会检查本地是够存在Box,如果存在就使用本地的创建,如果不存在就从远程下载创建。
从上面我们看到创建了一个名为centos_default_1540002362574_56438的虚拟机,我们可以使用VirtualBox查看一下

会发现已经的确存在一个名为centos_default_1540002362574_56438正在运行。
我们主机已经创建好,那怎么使用呢?
1 | ➜ centos vagrant ssh |
我们可以使用vagrant ssh进入虚拟机,执行exit退出虚拟机。
1 | ➜ centos vagrant status |
我们可以使用vagrant status查看虚拟机的状态,上面展示了更多的命令。
1 | # 暂停主机 可以使用 up 唤醒 |
上面的一系列操作都是基于Vagrantfile的,我们可以根据不同的Vagrantfile创建不同的虚拟主机。
可以在官方查找到对应的Vagrantfile:https://app.vagrantup.com/centos/boxes/7
Centos安装Docker
同样安装官方文档安装 :https://docs.docker.com/install/linux/docker-ce/centos/
删除旧版本:
1 | $ sudo yum remove docker \ |
Install required packages
1 | $ sudo yum install -y yum-utils \ |
下载repo
1 | $ sudo yum-config-manager \ |
安装docker
1 | $ sudo yum install docker-ce |
启动docker服务
1 | $ sudo systemctl start docker |
查看docker版本
1 | [root@hongshaorou ~]# docker version |
运行一个测试docker
1 | [root@hongshaorou ~]# sudo docker run hello-world |
上面就是一个完整的安装步骤。
Docker Machine的本地使用
什么是Docker Machine呢?
我们看下文档:https://docs.docker.com/machine/overview/

之前我们在Mac上安装Docker的时候 Docker Machine也是同步安装好的。
1 | ➜ docker_learn docker-machine version |
使用 Docker Machine可以直接创建一个安装好了Docker的虚拟机。
1 | ➜ docker_learn docker-machine create demo |
Boot2Docker ISO是一个安装好Docker的ISO文件,就是根据这个ISO去创建虚拟机的。
如果你直接执行上面的命令,会等好久。。。
将IOS文件下载好放到/Users/xxx/.docker/machine/cache目录下再次执行上面的命令就很快了。
和Vagrant一样我们可以查看创建了哪些虚拟机。
1 | ➜ docker_learn docker-machine ls |
同样我们可以在VirtualBox看到有一个名为demo的虚拟机

如何进去新建的虚拟机呢?
1 | ➜ docker_learn docker-machine ssh demo |
我们看下Docker Machine有哪些命令:
1 | Commands: |
下面我们学习下Docker Machine的其他知识
当我们在本机运行Docker version的时候
1 | ➜ docker_learn docker version |
我们看到本地的Client和Server对应的系统版本号。
当我们退出本地Docker服务的时候再次看下
1 | ➜ docker_learn docker version |
因为我们把本地的Docker服务停掉,因此连接不上本地的Server端。
现在我们把服务停掉之后无法连接服务端了,但是我们可以使用刚才使用Docker Machine创建的虚拟机作为服务端。
我们登上demo看下信息
1 | ➜ docker_learn docker-machine ssh demo |
将demo环境变量拷到本地
1 |
|
这样,我们可以通过Docker Machine在本地只装一个客户端,连接到远程的服务端就行了。
我们也可以在本地直接在远程 主机上创建一个安装好Docker的机器。
如果想要在云端创建就需要各种driver了,参考官方文档:https://docs.docker.com/machine/get-started-cloud/#examples
可以在这个网站直接体验Docker:https://labs.play-with-docker.com/