Docker, incredible virtual machine

什么是Docker
按照惯例,介绍一些历史,说明一下来龙去脉,至少知道它是怎么来的,又为什么会来,能干什么
- Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护
- Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。
- Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
Docker与传统虚拟机的对比
通过两张图,来理解一下Docker与传统虚拟机的对比,通过下面两张图能看出来Docker节省了哪些资源即可,其他的好处在后面的学习过程中陆续介绍
Docker目前分为两个版本
- Docker Enterprise Edition (Docker EE) 专为企业开发和IT团队设计,用于在大规模生产中构建,运送和运行关键业务应用程序Docker EE集成,认证和支持,为企业提供业界最安全的容器平台,使所有应用程序现代化
- Docker Community Edition (Docker CE) 是开发人员和小团队的理想选择,希望开始使用Docker并尝试基于容器的应用程序Docker CE可在许多平台上使用,从桌面到云到服务器
环境
Docker系列学习主要通过 VirtualBox 在 Ubuntu16.04 中完成安装以及后续进阶课程的学习, Docker版本为DockerCE
安装
安装Ubuntu16.04
VirtualBox 安装Ubuntu1604请参考在virtualbox下安装ubuntu server 16.04
安装docker
按照Docker官网Get Docker CE for Ubuntu描述安装DockerCE
检查安装条件
Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。
通过 uname -r 命令查看你当前的内核版本
1 | $ uname -r |
卸载旧的版本
老的Docker版本我们叫做docker或docker-engine, 如果之前安装过,这里需要先卸载, Docker CE package现在叫做docker-ce
1 | $ sudo apt-get remove docker docker-engine docker.io |
搭建Docker仓库
首次在宿主机上安装DockerCE,需要搭建Docker repository,搭建完成后,可以通过repository安装或更新Docker.
- 更新apt package
1
$ sudo apt-get update
- 允许apt用https方式访问Docker仓库(命令太长可以用 *\* 符号换行)
1
2
3
4
5$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common - 添加Docker的官方GPG密钥
1
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 验证fingerprint
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, 用后八位字符即可
1 | $ sudo apt-key fingerprint 0EBFCD88 |
- 设置稳定版Repository
1
2
3
4$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装Docker CE
- 更新apt索引
1
$ sudo apt-get update
- 安装最新版本的Docker CE
1
$ sudo apt-get install docker-ce
- 生产环境指定Docker版本
生产环境为了稳定性会选择指定版本,而不是Dokcer的最新版本,查看可用版本:1
2
3$ apt-cache madison docker-ce
docker-ce | 17.09.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages - 安装指定Docker CE 版本
1
$ sudo apt-get install docker-ce=<VERSION>
- 确认Docker CE 是否安装成功
仔细阅读docker run hello-world的输出内容,对于理解docker的工作原理有帮助
1 | $ sudo docker run hello-world |
- 启动Docker
1
$ systemctl start docker
- 重新启动Docker
1
$ systemctl restart docker
Docker命令去掉sudo
默认情况下,我们每次敲docker命令都需要sudo权限,下面的方法可以省去sudo方便很多.
- 创建docker组
1
$ sudo groupadd docker
- 添加当前用户到docker组
1
$ sudo usermod -aG docker $USER
- 登出,重新登录shell
- 验证docker命令是否可以运行(注意没有sudo)
1
$ docker run hello-world