最近想在服务器上安装升级新版本的docker遇到了一些问题,以下是docker安装笔记
一、服务器的要求
因为有些服务器Centos版本较低,导致安装docker的过程中出现一系列问题。Centos版本要求如下:
1. 官方说明:To run Docker, you will need CentOS6 or higher, with a kernel version 2.6.32-431 or higher as this has specific kernel fixes to allow Docker to run.
所以安装 docker需要Centos至少在6以上(我们的服务器还有不少是5.X的,所以装的有点悲剧。。。),内核需要>=2.6.32-431
查看服务器版本和内核有以下几种方式
- cat /etc/redhat-release , cat /proc/version
CentOS release 6.5 (Final)
- lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final
- uname -a
Linux testhadoop-slave2 2.6.32-431.11.2.el6.toa.2.x86_64 #1 SMP Wed Apr 9 15:55:33 CST 2014 x86_64 x86_64 x86_64 GNU/Linux
2. 升级docker到较新版本
CentOS 6 and RHEL 6 are no longer supported, and the last build for them is docker 1.7.1.
Docker runs on CentOS 7.X Docker requires a 64-bit installation regardless of your CentOS version. Also, your kernel must be 3.10 at minimum, which CentOS 7 runs.
因为想在持续集成工具(Jenkins)上启动docker,对docker版本有要求。所以希望在服务器上安装最新版本的docker。Google查到以上信息:对于CentOS 6.X的服务器,docker最高版本只能安装到1.7.1。所以需要至少CentOS 7.X,内核至少3.10以上的机器来安装运行较新版本的docker。因此想要用docker,服务器至少更新到CentOS 7.X。
二、另外有诡异报错
我在Jenkins持续集成中加入了启动docker容器的任务,报错:
Jenkins does not seem to be running inside a container
经查证较新版docker,需要服务器的 jdk在1.8以上。jdk安装教程很多,这里省略。
三、开始安装
第一种安装,安装指定版本的docker:
以安装docker-engine-1.10.3-1为例:
wget https://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-1.10.3-1.el7.centos.x86_64.rpm
wget https://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm
yum localinstall -y docker-engine*
rm -f docker-engine-1.10.3-1.el7.centos.x86_64.rpm docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm
systemctl start docker
注释:上面的两个包是同时安装的(docker-engine*)。
遇到报错you can pass a flag to ignore obsoletes:(报错obsoletes),采用了以下方式安装,忽略obsoletes:
(\是连接符)
yum install -y --setopt=obsoletes=0 \
docker-engine-1.10.3-1.el7.centos.x86_64.rpm \
docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm
第二种安装
1)删除之前的安装
yum remove docker-engine*
yum remove docker-*
2)在CentOS 7上可以使用yum命令开始安装
yum install docker-engine (对于CentOS 7适用)
安装docker的版本为:
docker version
Client:
Version: 17.05.0-ce
API version: 1.29
Go version: go1.7.5
Git commit: 89658be
Built: Thu May 4 22:06:25 2017
OS/Arch: linux/amd64
Server:
Version: 17.05.0-ce
API version: 1.29 (minimum version 1.12)
Go version: go1.7.5
Git commit: 89658be
Built: Thu May 4 22:06:25 2017
OS/Arch: linux/amd64
Experimental: false
安装完重启docker:systemctl start docker
四、我的yum源如下
cat /etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg