核心概念与安装配置
本章首先介绍Docker的三大核心概念:
口镜像(Image)
口容器(Container)
口仓库(Reposit。可)
只有理解了这三个核心概念,才能顺利地理解Docker容器的整个生命周期。
随后,笔者将介绍如何在常见的操作系统平台上安装Docker,包括Ubun阳、 CentOS、
MacOS和Windows等主流操作系统。
核心概念
Docker大部分的操作都围绕着它的三大核心概念: 镜像、容器和仓库。因此,准确把握
这三大核心概念对于掌握Docker技术尤为重要。
-
Docker镜像
Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。
例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache应用程序(或
用户需要的其他软件)。可以把它称为一个Apache镜像。
镜像是创建Docker容器的基础。
通过版本管理和增量的文件系统, Docker提供了一套十分简单的机制来创建和更新现有
的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。
第 2 章核心概念与安装配置
- Docker容器
Docker容器类似于一个轻量级的沙箱, Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例。 它可以启动、开始、停止、 删除,而这些容器都是
彼此相互隔离、互不可见的。
可以把容器看作一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空
间和网络空间等)以及运行在其中的应用程序打包而成的盒子。
@主镜像自身是只读的。 容器从镜像启动的时候,会在镜像的最上层创建一个可写层。
- Docker仓库
Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。
有时候我们会将Docker仓库和仓库注册服务器(Regis町)混为一谈,并不严格区分。 实
际上,仓库注册服务器是存放仓库的地方,其上往往
存放着多个仓库。每个仓库集中存放某一类镜像,往
往包括多个镜像文件,通过不同的标签(tag)来进行
区分。 例如存放Ubuntu操作系统镜像的仓库,被称 || Ubuntu仓库 I I CentOS仓库
为Ubuntu仓库,其中可能包括16.04、 18. 04 等不同
版本的镜像。仓库注册服务器的示例如图二l所示。
根据所存储的镜像公开分享与否, Docker仓库
可以分为公开仓库(Public)和私有仓库(Private)两种形式。
注册服务椿
图2-1 注册服务器与仓库
目前,最大的公开仓库是官方提供的DockerHub,其中存放着数量庞大的镜像供用户下
载。 国内不少云服务提供商(如腾讯云、 阿里云等)也提供了仓库的本地源,可以提供稳定
的国内访问。
当然,用户如果不希望公开分享自己的镜像文件, Docker也支持用户在本地网络内创建
一个只能自己访问的私有仓库。
当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的公有或者私有仓
库。 这样用户下次在另外一台机器上使用该镜像时,只需要将其从仓库上pull下来就可以了。
♂h洼 可以看出, Docker利用仓库管理镜像的设计理念与Git代码仓库的概念非常相似,实
- 际上Docker设计上借鉴了Git的很多优秀思想。
2.2 安装Docker引擎
Docker引擎是使用Docker容器的核心组件,可以在主流的操作系统和云平台上使用,
包括Linux操作系统(如Ubuntu、Debian,CentOS、Red.hat等),macOS和Windows操作系统,
以及IBM、亚马逊、微软等知名云平台。
12 第一部份基础入门
用户可以访问Docker官网的GetDocker ( https://www.docker.com/get-docker)页面,查
看获取Docker的方式,以及Docker支持的平台类型,如图2-2所示。
Get starred with Docker, the world's leading software container platform lo modernize applications without disruption. Docker is available as Community Edition (CE) and
Enterprise Edition (EE), with opυmJZed Installers for a varie叩ofinfrastructure. The Docker platform and associated toolchair、providesthe following features as a baseline for
both CE and EE
图2-2 获取Docker
目前Docker支持Docker引擎、 DockerHub、 DockerCloud等多种服务。
D Docker引擎:包括支持在桌面系统或云平台安装Docker,以及为企业提供简单安全
弹性的容器集群编排和管理;
口DockerHub:官方提供的云托管服务,可以提供公有或私有的镜像仓库;
口DockerCloud:官方提供的容器云服务,可以完成容器的部署与管理,可以完整地支
持容器化项目,还有CI、 CD功能。
Docker引擎目前分为两个版本:社区版本(Community Edition, CE)和企业版本
(Enterprise Edition, EE)。 社区版本包括大部分的核心功能,企业版本则通过付费形式提供
认证支持、镜像管理、 容器托管、 安全扫描等高级服务。 通常情况下,用户使用社区版本可
以满足大部分需求;若有更苛刻的需求,可以购买企业版本服务。 社区版本每个月会发布一
次尝鲜(Edge)版本,每个季度( 3 、 6 、 9 、 12 月)会发行一次稳定(Stable)版本。 版本号
命名格式为“年份.月份”,如 2018 年 6 月发布的版本号为vl8.06。
笔者推荐首选在Linux环境中使用Docker社区稳定版本,以获取最佳的原生支持体验。
本书如无特殊说明,则以社区版本的稳定版为例进行说明。
2.2.1 Ubuntu环境下安装Doeke「
1.系统要求
Ubuntu操作系统对Docker的支持十分成熟,可以支持包括x86_64、 arm町、 s390x(IBM
Z)、 ppc64le等系统架构,只要是 64 位即可。
第2 章核心概念与安装配置 令13
Docker目前支持的最低Ubuntu版本为 14.04LTS,但实际上从稳定性上考虑,推荐使用
1 6. 04 LTS或18 .0.4LTS版本,并且系统内核越新越好,以支持Docker最新的特性。
用户可以通过如下命令检查自己的内核版本详细信息:
$ uname -a
Linux localhost 4 9 36-x86 64-generic
或者:
$ cat /proc/version
Linux version 4.9.36-x86_64-gener工c ([email protected]) (gee version 4. 9. 2 (Debian
4.92 10))
如果使用Ubuntu 1 6.04 LTS版本,为了让Docker使用aufs存储,推荐安装如下两个
软件包:
$ sudo apt-get update
$ sudo apt-get install -y
linux-image-extra $(uname -r)
linux image-extra-virtual
t"A主 Ubuntu发行版中, LTS( Long-Term-Support)意味着更稳定的功能和更长期(目前为
-- 5 年)的升级支持,生产环境中推荐尽量使用LTS版本。
2 .添加镜像源
首先需要安装apt-transport-https等软件包支持https协议的源:
$ sudo apt-get update
$ sudo apt-get 工nstall
apt-transport https
ca-certificates
curl
software-properties-common
添加源的gpg密钥:
$ curl -fsSL https://download.docker.com/l工nux/ubuntu/gpg I sudo apt key add -
OK
确认导人指纹为“ 9 DC8 5822 9FC7 DD38854 A E2D8 8D8 I 803C OEBF CD饵”的GPG
公钥:
$ sudo apt-key fingerprint OEBFCDBB
pub 4096R/OEBFCD88 2017-02-
Key fingerpr工nt ; 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C OEBF CDBB
uid Docker Release (CE deb) <docker@docker. com>
sub 4096R/F273FCD82017 02-
获取当前操作系统的代号:
$ lsb release -cs
xenial
14 令 第一部分基础入门
一般情况下, Ubuntu16.04 LTS代号为xenial, Ubuntu 18 .04 LTS代号为bionic。
接下来通过如下命令添加Docker稳定版的官方软件源,非xenial版本的系统注意修改
为自己对应的代号:
丰 sudoadd-apt-repository
"deb [arch~amd64) https://download.docker.com/linux/ubuntu
xenial
stable ”
添加成功后,再次更新apt软件包缓存:
$ s udo apt-get update
3.开始安装Docker
在成功添加源之后,就可以安装最新版本的Docker了,软件包名称为docker-ce,代表
是社区版本:
$ s udo apt-get install -y docker-ce
如果系统中存在较旧版本的Docker,会提示是否先删除,选择是即可。
除了基于手动添加软件源的方式之外,也可以使用官方提供的脚本来自动化安装Docker:
$ sudo curl -sSL https://get.docker.com/ I sh
安装成功后,会自动启动Dock巳r服务。
用户也可以指定安装软件源中其他版本的Docker:
$ sudo apt-cache madison docker-ce
docker-ce I 17. 11. o~ce-0-ubuntu I https: I /download. docker. com/linux/ubuntu
xen工al/edge amd64 Packages
docker-ce I 17.10.0-ce-O~ubuntu I https: //download. docker. com/linux/ubuntu
xen工al /edgeamd64 Packages
docker-ce I 17.09.l句ce-0~ubuntu I https: I /download. docker. com/linux/ubuntu
xen工al/stableamd64 Packages
$ sudo apt-get install docker-ce=l7.ll.O句ce-0-ubuntu
2.2.2 CentOS环境下安装Docker
Docker目前支持CentOS 7 及以后的版本。 系统的要求跟Ubuntu情况类似, 64 位操作
系统,内核版本至少为3.10。
首先,为了方便添加软件源,以及支持devicemapper存储类型,安装如下软件包:
$ s udo yum update
$ sudo yum instal l -y yum-utils
device-mapper-persistent-data
lvm
添加Docker稳定版本的yum软件源:
$ sudo yum-conf ig-manager \
第 2 章核心概念与安装配置 令 15
add-repo
https://download.docker.corn/linux/centos/docker-ce.repo
之后更新yum软件源缓存,并安装Docker:
$ sudo yum update
$ sudo yum install -y docker-ce
最后,确认Docker服务启动正常:
$ sudo systernctl start docker
2.2.3 通过脚本安装
用户还可以使用官方提供的shell脚本来在Linux系统(目前支持山untu、 Debian、
Oracleserv町、 Fedora、 Centos、 OpenSuse、 Gentoo等常见发行版)上安装Docker的最新正式
版本,该脚本会自动检测系统信息并进行相应配置:
$ curl -fsSL https://get.docker. corn/ I sh
或者:
$ wget -qO- https://get.docker.corn/ I sh
如果想尝鲜最新功能,可以使用下面的脚本来安装最新的“尝鲜”版本。 但要注意,非
稳定版本往往意味着功能还不够稳定,不要在生产环境中使用:
$ curl -fsSL https