《基于Kubernetes的容器云平台实战》——1.3 Docker基本概念
516
2022-05-29
1.5 Docker安装
Docker引擎能够在Linux、MacOS以及Windows 10以上版本下安装。Docker引擎以客户端/服务器模式运行在宿主机上,以下操作过程同时安装了客户端工具、服务器端程序以及基本文档。
Docker引擎版本分为两类:社区版和企业版。其中,只有社区版是开源免费使用的,被称为Docker-ce。对于Docker企业版这里暂不讨论。
1.5.1 手动安装模式
Docker-ce版本包可以从https://download.docker.com/站点下载,网上还有不少提供镜像功能的站点,有时从这些镜像站点下载比从官方站点下载要快,尤其是在企业内部网络中只能访问到内部的镜像站点时,这就变成唯一途径了。版本包中含有编译好的服务器端程序和客户端命令行工具,以及内置的Containerd和RunC等运行时依赖程序(但不含有Linux下用于checkpoint的criu工具)。如果用源码编译的话,可使用git克隆源代码,再用Golang编译出可执行程序。需要注意的是,Docker-ce的部分版本分支(17.05及以前的)代码在https://github.com/moby/moby项目中,但是更新的版本分支代码在https://github.com/docker/docker-ce项目中。编译过程中会自动下载依赖包对应的源码,并使用到编译机上已安装的Docker引擎,这是因为编译过程是在一系列容器中进行的。
Docker-ce提供四种版本:stable、edge、test和nightly。从Docker 1.13版本以后,新版本号改成了以发布年份和月份为准,而不再是顺序的数字,比如17.09.0、18.03.0等。edge版每月发布,stable版则是每季度才发布一次。test版是在edge版发布之前,以rc1、rc2等形式发布,而nightly版本带有-dev后缀,相当于下个月的预览版。目前,从上述官方下载站点只能下载17.03.0之后的版本,在CentOS、Ubuntu等操作系统上通过软件包管理工具安装时,可以通过指定版本号的方式从它们自有的仓库中下载并安装对应旧版本的软件包。
Docker-ce版本分为静态链接和动态链接两种。静态链接版本不依赖操作系统库,但尺寸较大;而动态链接版本的可执行程序虽然小一点,但是与操作系统库相关,这种版本包只能在某种操作系统的具体发行版下安装。目前对于Windows和MacOS,只能提供静态链接版本。
对Linux同时提供静态和动态链接两种版本。动态版本支持CentOS、Debian、Fedora、Raspbian和Ubuntu五类发行版。另外,由于Docker引擎要求内核版本在3.10以上,而且内核编译时需要激活必需的namespace、CGroup、netfilter、veth等特性,还对iptables等工具版本有依赖要求,因此只支持这些发行版的某些版本,比如对CentOS要求是版本7以上,对Ubuntu则要求是14.04版本以上等。如图1-4所示的表格整理了Docker-ce官方下载站点上提供的不同操作系统的版本情况。
要验证当前环境是否满足Docker运行要求,可以下载并执行如下脚本:
# curl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh > check-config.sh
# bash ./check-config.sh
由于在Windows和MacOS下使用Docker的业务场景还不广泛,因此这里不讨论在这两种操作系统下安装Docker-ce的过程。
图1-4 Docker-ce操作系统支持情况
表格中 代表静态版本, 代表动态版本。
A = aarch64 E = armel H = armhf P = ppc64le S = s390x X = x86_64 6 = amd64
如果用户当前Linux发行版本不在上述支持范围内,可下载静态编译版本包(注意URL路径中版本类型和体系结构标识):https://download.docker.com/linux/static/stable/x86_64/。URL路径中stable表示版本类型,而x86_64表示该版本支持的体系结构。如果需要其他静态链接版本,只要从对应的URL下载即可。
下载该URL下后缀为tgz的压缩文件,解压并复制全部内容到/usr/bin,就可以执行Dockerd守护程序了。不过以这种方式下载安装的时候不带有手册文档。
# tar xzvf /path/to/
# cp docker/* /usr/bin/
# dockerd &
这时需要手工配置/etc/docker/daemon.json,添加定制的运行参数,或者为Dockerd添加命令行参数。具体执行参数需要参考Docker文档。
Kubernetes Docker
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。