第一步,先装自带的1.7版本Docker然后移花接木换1.9
#Centos6的1.7.1版本Docker在EPEL和Docker官方源提供,EPEL方便点
yum install epel-release -y
#docker-io才是1.7.1版本的,叫docker那个是1.5版本的
yum install docker-io -y
#下载1.9.1然后替换
curl -sSL -O https://get.docker.com/builds/Linux/x86_64/docker-1.9.1
chmod +x docker-1.9.1
sudo mv docker-1.9.1 /usr/bin/docker
service docker restart
或者直接下载镜像源安装
wget https://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/6/Packages/docker-engine-1.7.1-1.el6.x86_64.rpm
rpm -ivh docker-engine-1.7.1-1.el6.x86_64.rpm
这步为的是提供编译最新版本Docker的一个基础,接着安装编译环境
yum install git make -y
#Docker使用Golang开发
wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz
tar xzf go1.10.linux-amd64.tar.gz -C /usr/local
mkdir /usr/local/gopackage
vi /etc/profile
#在profile中加入下面的环境变量,PATH如果原来就有请自行合并
GOROOT=/usr/local/go
GOPATH=/usr/local/gopackage
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOROOT GOPATH PATH
source /etc/profile
然后我们就可以编译了
#docker改名为moby,不用纠结
git clone https://github.com/moby/moby
cd moby
#要啥版本你自己看着切换,我们选择比较稳定的最新版本17.03.2,你也可以选择17.05啥的
git checkout v17.03.2-ce
make build
make binary
make install
不得不说,这步比较漫长,我建议你可以先开个screen然后编译,防止网络问题断开ssh导致出错,编译完成后我们可以收尾了。
#卸载旧的docker
yum remove docker-io -y
#清理下遗留的文件
rm -rf /var/lib/docker/*
#docker 配置文件
wget https://raw.githubusercontent.com/moby/moby/master/contrib/init/sysvinit-redhat/docker.sysconfig -O /etc/sysconfig/docker
#docker init启动文件
wget https://raw.githubusercontent.com/moby/moby/master/contrib/init/sysvinit-redhat/docker -O /etc/init.d/docker
#修改启动文件中dockerd的位置
sed -i "27s#usr/bin#usr/local/bin#g" /etc/init.d/docker
#修改环境变量,覆盖functions脚本中的PATH,防止无法找到docker-container等程序
sed -i "23s#functions#functions\nexport PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin#g" /etc/init.d/docker
#启动
service docker restart
#查看版本
docker version