<b>2.2 安装docker</b>
<b></b>
docker在主流的操作系统和云平台上都可以使用,包括linux操作系统(如ubuntu、debian、centos、redhat等)、macos操作系统和windows操作系统,以及aws等云平台。
用户可以访问docker官网的get docker(https://www.docker.com/products/overview)页面,查看获取docker的方式,以及docker支持的平台类型,如图2-2所示。
图2-2 获取docker
在get docker页面,我们可以看到目前docker支持docker platform、docker hub、docker cloud和docker datacenter。
docker platform:支持在桌面系统或云平台安装docker;
dockerhub:官方提供的云托管服务,可以提供公有或私有的镜像仓库;
dockercloud:官方提供的容器云服务,可以完成容器的部署与管理,可以完整地支持容器化项目,还有ci、cd功能;
docker datacenter:提供企业级的简单安全弹性的容器集群编排和管理。
笔者推荐尽量使用linux操作系统来运行docker,因为目前linux操作系统对docker的支持是原生的,使用体验最好。
2.2.1 ubuntu环境下安装docker
1.?系统要求
docker目前只能运行在64位平台上,并且要求内核版本不低于3.10,实际上内核越新越好,过低的内核版本容易造成功能不稳定。
用户可以通过如下命令检查自己的内核版本详细信息:
$ uname -a
linux host 3.16.0-43-generic #58~14.04.1-ubuntu smp mon jun 22 10:21:20 utc
2015 x86_64 x86_64 x86_64 gnu/linux
或者:
$ cat /proc/version
linux version 3.16.0-43-generic (buildd@brownie) (gcc version 4.8.2 (ubuntu
4.8.2-19ubuntu1) ) #58~14.04.1-ubuntu smp mon jun 22 10:21:20 utc 2015
docker目前支持的最低ubuntu版本为12.04 lts,但实际上从稳定性上考虑,推荐至少使用14.04 lts版本。
如果使用12.04 lts版本,首先要更新系统内核和安装可能需要的软件包,包括:
linux-image-generic-lts-trusty(必备)
linux-headers-generic-lts-trusty(必备)
xserver-xorg-lts-trusty(带图形界面时必备)
libgl1-mesa-glx-lts-trusty(带图形界面时必备)
另外,为了让docker使用aufs存储,推荐安装linux-image-extra软件包。
$ sudo apt-get install -y linux-image-extra-$(uname -r)
ubuntu发行版中,lts(long-term-support)意味着更稳定的功能和更长期(目前为5年)的升级支持,生产环境中尽量使用lts版本。
2.?添加镜像源
首先需要安装apt-transport-https包支持https协议的源:
$ sudo apt-get install -y apt-transport-https
添加源的gpg密钥:
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys
58118e89f3a912897c070adbf76221572c52609d
获取当前操作系统的代号:
$ lsb_release -c
codename: trusty
一般情况下,12.04(lts)代号为precise,14.04(lts)代号为trusty,15.04代号为vivid,15.10代号为wily。这里获取的代号为trusty。
接下来就可以添加docker的官方apt软件源了。通过下面的命令创建/etc/apt/sources.list.d/docker.list文件,并写入源的地址内容。非trusty版本的系统注意修改为自己对应的代号:
$ sudo cat <<eof > /etc/apt/sources.list.d/docker.list
deb https://apt.dockerproject.org/repo ubuntu-trusty main
eof
添加成功后,更新apt软件包缓存:
$ sudo apt-get update
3.?开始安装docker
在成功添加源之后,就可以安装最新版本的docker了,软件包名称为docker-engine:
$ sudo apt-get install -y docker-engine
如果系统中存在较旧版本的docker(lxc-docker),会提示是否先删除,选择“是”即可。
除了基于手动添加软件源的方式,也可以使用官方提供的脚本来自动化安装docker:
$ sudo curl -ssl https://get.docker.com/ | sh
安装成功后,启动docker服务:
$ sudo service docker start
2.2.2 centos环境下安装docker
系统的要求与ubuntu情况下类似:64位操作系统,内核版本至少为3.10。
docker目前支持centos 6.5及以后的版本,推荐使用centos 7系统。
首先,也是要添加yum软件源:
$ sudo tee /etc/yum.repos.d/docker.repo <<-'eof'
[dockerrepo]
name=docker repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
之后更新yum软件源缓存,并安装docker-engine:
$ sudo yum update
$ sudo yum install -y docker-engine
对于centos 7系统,centos-extras源中已内置docker,如果已经配置了centos-extras源,可以直接通过上面的yum命令进行安装。
2.2.3 通过脚本安装
用户还可以使用官方提供的shell脚本来在linux系统(目前支持ubuntu、debian、oracleserver、fedora、centos、opensuse、gentoo等常见发行版)上安装docker的最新正式版本,该脚本会自动检测系统信息并进行相应配置:
$ curl -fssl https://get.docker.com/ | sh
$ wget -qo- https://get.docker.com/ | sh
如果想尝鲜使用最新功能,可以使用下面的脚本来安装预发布版本。但要注意,预发布版本往往意味着功能还不够稳定,不要在生产环境中使用:
$ curl -fssl https://test.docker.com/ | sh
另外,也可以从github.com/docker/docker/releases找到所有的发行版本信息和二进制包,自行下载使用。
2.2.4 mac os环境下安装docker
docker官方非常重视docker在mac环境下的易用性。目前docker支持原生mac客户端,内置图形界面,支持自动升级。此客户端与mac os x的原生虚拟化深度结合,摒弃了之前安装virtualbox(即docker toolbox)的简单粗暴的做法。我们先从官方默认的docker for mac开始。
1.?docker for mac
第一步,下载安装包。访问https://docs.docker.com/docker-for-mac/下载页面。目前docker for mac分为稳定版和beta版两种更新通道,我们可以按需选择。下载完成后,双击安装包,如图2-3所示。
图2-3 下载后打开安装包
第二步,开始安装。将docker.app拖曳至applications文件夹,即可完成安装,如图2-4所示。
图2-4 安装docker到applications文件夹
第三步,运行docker for mac。在欢迎窗口点击“next”,如图2-5所示。
图2-5 欢迎窗口
允许docker获得系统权限,它需要将mac网卡链接至docker app。点击“ok”后输入系统管理员密码,如图2-6所示。
图2-6 运行docker for mac
此时系统状态栏会出现docker的icon图标,点击后如果出现“docker is running!”,则说明安装成功。
第四步,验证docker安装。打开终端控制器或其他系统命令行,执行docker version命令。
$ docker version
client:
version: 1.12.0
api version: 1.24
go version: go1.6.3
git commit: 8eab29e
built: thu jul 28 21:15:28 2016
os/arch: darwin/amd64
server:
os/arch: linux/amd64
如果我们看到client和server均有输出,则说明docker for mac已经正常启动。如果我们看到报错:“cannot connect to the docker daemon. is the docker daemon running on this host?”,则说明docker for mac没有启动或启动失败。
下面启动一个nginx容器,检查能正确获取镜像并运行:
$ docker run -d -p 80:80 --name webserver nginx
unable to find image 'nginx:latest' locally
latest: pulling from library/nginx
51f5c6a04d83: pull complete
a3ed95caeb02: pull complete
51d229e136d0: pull complete
bcd41daec8cc: pull complete
digest:
sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
status: downloaded newer image for nginx:latest
34bcd01998a76f67b1b9e6abe5b7db5e685af325d6fafb1acd0ce84e81e71e5d
然后使用docker ps指令查看当前运行的容器:
$ docker ps
container id image command created
status ports names
34bcd01998a7 nginx "nginx -g 'daemon off" 2 minutes ago
up 2 minutes 0.0.0.0:80->80/tcp, 443/tcp webserver
可见nginx容器已经在0.0.0.0:80启动,并映射了80端口,下面我们打开浏览器访问此地址,如图2-7所示。
第五步,常用配置设定。首先,点击系统状态栏的docker图标,会出现操作菜单,如图2-8所示。
图2-7 允许访问系统权限 ? 图2-8 docker菜单
然后,点击preferences,进入标准配置页面,我们可以设置是否自动启动与更新,设置备份工具time machine是否备份vm,还可以配置docker使用的cpu数、内存容量,如图2-9所示。
点击进入advanced进阶配置。为了更好地使用docker hub,我们可以使用registry镜像站点进行加速。点击+后,加入镜像站点配置。这里还可以配置http代理服务器,如图2-10所示。
点击进入file sharing标签页,此处可以配置挂载至容器中的本地目录。点击+后可以继续添加本地目录,如图2-11所示。
图2-9 标准配置页面 图2-10 高级配置页面
点击进入privacy标签页,此处可以配置隐私选项,如是否发送使用信息,以及是否发送程序崩溃报告,如图2-12所示。
图2-11 文件分享配置页面 ? 图2-12 隐私配置页面
2.?docker toolbox
在mac os x操作系统上安装docker,除了docker for mac的原生方式之外,还可以使用官方提供的docker toolbox工具。
首先前往https://www.docker.com/products/docker-toolbox下载对应版本的toolbox。目前docker支持的mac os x版本为10.6+。如图2-13所示。
图2-13 toolbox安装页面
双击运行安装包。这个过程将安装一个virtualbox虚拟机,内置了docker engine、compose、machine、kitematic等管理工具。安装成功后,找到boot2docker并运行它。如图2-14所示。
图2-14 boot2docker页面
现在进行boot2docker的初始化:
$ boot2docker init
$ boot2docker start
$ $(boot2docker shellinit)
将看到虚拟机在命令行窗口中启动运行。当虚拟机初始化完毕后,可以使用boot2docker stop和boot2docker start来控制它。
注意,如果在命令行中看到如下提示信息:
to connect the docker client to the docker daemon, please set: export docker_
host=tcp://192.168.59.103:2375
可以执行提示信息中的语句:export docker_host=tcp://192.168.59.103:2375。此语句的作用是在系统环境变量中设置docker的主机地址。
2.2.5 windows环境下安装docker
目前docker可以通过虚拟机方式来支持windows 7.1和8,只要平台cpu支持硬件虚拟化特性即可。如果无法确定自己计算机的cpu是否支持该特性也无需担心,实际上,目前市面上主流的cpu都早已支持了硬件虚拟化特性。
对于windows 10用户,docker官方提供了原生虚拟化应用docker for windows。详情见:https://docs.docker.com/windows/step_one/。目前国内windows 7还是主导地位的版本,所以下面主要讲解如何在windows 7环境下安装docker环境。
由于docker引擎使用了linux内核特性,所以如果要在windows 10之外的windows上运行,需要额外使用一个虚拟机来提供linux支持。这里推荐使用boot2docker工具,它会首先安装一个经过加工与配置的轻量级虚拟机,然后在其中运行docker。主要步骤如下:
首先,从https://docs.docker.com/installation/windows/下载最新官方docker for windows installer。双击打开installer。这个过程将安装virtualbox、msys-git、boot2docker linux iso镜像,以及boot2docker管理工具。如图2-15所示。
图2-15 docker for windows installer
最后,打开桌面的boot2docker start程序,或者program files\boot2docker for windows。此初始化脚本在第一次运行时需要输入一个ssh key passphrase(用于ssh密钥生成的口令)。读者可以自行设定,也可以直接按回车键跳过此设定。如图2-16所示。
图2-16 boot2docker安装器
此时boot2docker start程序将连接至虚拟机中的shell会话,docker已经运行起来了!