一、实验背景
现在docker将版本分为企业EE版以及社区CE版。
Docker CE 在 17.03 版本之前叫 Docker Engine,版本号范围: 0.1.0 ~ 1.13.1。
从 17.03 版本开始新的发布方案 ( 命名变动 / 发布周期的改善 / 版本号方案变更 )。
在 2017 年 3 月 2 日, docker 团队宣布企业版 Docker Enterprise Edition ( EE ) 发布. 为了一致, 免费的 Docker Engine 改名为 Docker Community Edition ( CE ), 并且采用基于时间的版本号方案. 就在这一天, Docker EE 和 Docker CE 的 17.03 版本发布, 这也是第一个采用新的版本号方案的版本。
Docker CE/EE 每个季度发布一次季度版本, 也就是说每年会发布 4 个季度版本, 17.03, 17.06, 17.09, 17.12 就是 2017 年的 4 个季度版本的版本号, 同时 Docker CE 每个月还会发布一个 EDGE 版本,比如 17.04, 17.05, 17.07, 17.08, 17.10, 17.11,Docker CE 季度版本自发布后会有 4 个月的维护期。
CentOS7.x上的docker安装,主要有两种方式:rpm yum安装和二进制文件安装,其他Linux发行版安装方式类似。
1.Docker的rpm yum安装需要添加docker官方,然后安装相应的docker社区版,如果内网离线安装的化,需要先在联网机器上下载主包及其依赖,在内网机器搭建本地yum源,执行安装。
2.Docker的二进制文件安装就省事多了,直接下载官方二进制安装包(无需编译,解压即用),编写服务的启动脚本或者Unit文件。
下面我们分别介绍两种安装方式,感受一下安装差异。
二、Docker的yum安装
# yum -y install yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum list docker-ce --showduplicates | sort -r
# yum -y install docker-ce-18.06.0.ce
# systemctl start docker
# systemctl status docker
# systemctl enable docker
# docker version
三、Docker的二进制安装
下载docker二进制安装包
# yum -y install wget
# wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.0-ce.tgz
# tar -zxf docker-18.06.0-ce.tgz
# ll ./docker
# cp ./docker/docker* /usr/bin
创建docker服务的unit文件
# vim /etc/systemd/system/docker.service
##############################################################
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
##############################################
启动docker服务并设为开机自
# systemctl daemon-reload
# systemctl start docker
# systemctl status docker
# systemctl enable docker
# docker info
# docker version
四、设置镜像加速
# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
# systemctl restart docker
五、参考
https://download.docker.com/linux/static/edge/x86_64
https://docs.docker.com/engine/reference/commandline/dockerd
https://github.com/moby/moby/releases
https://github.com/moby/moby/blob/master/contrib/init/systemd/docker.service
moby/moby
https://github.com/moby/moby/blob/master/CHANGELOG.md
Docker Engine release notes
https://docs.docker.com/release-notes/docker-engine
About Docker Engine - Community
https://docs.docker.com/install
Announcing Docker Enterprise Edition
https://blog.docker.com/2017/03/docker-enterprise-edition