需求驱动
为什么已经写过docker安装了,还要再写一遍?这个嘛。。。因为上次是centos7搭建服务,这次是centos8,开发组要求centos8上面验证。这次,就是踩坑的过程,值得你拥有。
Docker版本要求
1、要求 CentOs 系统的内核版本高于 3.10,可通过如下指令查看版本
uname -r
卸载docker,并更新yum
sudo yum remove docker docker-common container-selinux docker-selinux docker-engine
sudo yum remove -y docker-*
sudo yum update
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
出现如下错误:
yum makecache: error: argument timer: invalid choice: ‘fast’ (choose from ‘timer’)
更新索引的时候出错,即centos8没有该参数,解决办法为:去掉fast参数
查看仓库版本,并指定版本安装
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-3:18.09.9-3.el7.x86_64
出现如下错误:
Problem: package docker-ce-3:18.09.9-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
根据提示,需要containerd.io的版本 >= 1.2.2-3,操作如下:
(1)安装wget指令
yum install wget
(2)获取rpm包
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
(3)升级containerd.io(安装rpm包)
yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
(4)重新安装docker-ce
启动docker
(1)设置开机自启动
sudo systemctl start docker
sudo systemctl enable docker
(2)启动
sudo systemctl start docker
(3)验证
sudo docker ps
出现以下报错:
[root@localhost ~]# docker ps
Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39
此时,重新卸载,接着重新安装(上面的方式在centos7不会又该问题)。安装docker-ce指令修改如下:
yum -y install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
yum install -y docker-ce-3:18.09.9-3.el7.x86_64 docker-ce-cli-1:18.09.9-3.el7.x86_64
重新验证如下:
配置仓库
(1)配置仓库
vim /etc/docker/daemon.json
私有仓库格式为:
{
“insecure-registries”:[“ip:端口”],
“registry-mirrors”: [“域名”]
}
(2)重启生效
systemctl restart docker.service