环境:CentOS Linux release 7.8.2003
参考教程:参考官网
文章目录
1、前提条件
Docker要求CentOS系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本是否支持安账docker
uname -r
我使用的是腾讯云 Linux云服务器,以前应该是没有安装过docker的,首先,将旧版移除。
2、移除旧版Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
3、更新yum包(千万别更新!我更新过程等了4小时!)
sudo yum update
4、安装需要的软件包
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
5、配置官方yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
也可以配置阿里的,二者取其一即可。
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
如果后边出现这种错误,删下镜像,重新配置。
进入目录
cd /etc/yum.repos.d
删除只剩CentOS_Base.Repo这一个
参考该博主
6、查看docker版本
yum list docker-ce --showduplicates | sort -r
7、选择某版本安装
yum install docker-ce-18.06.3.ce-3.el7 -y
这个版本好像有点问题,不能了,可以装最新版本的。
sudo yum install docker-ce docker-ce-cli containerd.io
如果报错,如下:
Last metadata expiration check: 0:00:27 ago on Fri 18 Jun 2021 01:07:25 PM EDT.
Error:
Problem 1: problem with installed package podman-3.1.0-0.13.module_el8.5.0+733+9bb5dffa.x86_64
- package podman-3.1.0-0.13.module_el8.5.0+733+9bb5dffa.x86_64 requires runc >= 1.0.0-57, but none of the providers can be installed
- package containerd.io-1.4.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- package containerd.io-1.4.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- cannot install the best candidate for the job
- package runc-1.0.0-64.rc10.module_el8.4.0+522+66908d0c.x86_64 is filtered out by modular filtering
- package runc-1.0.0-70.rc92.module_el8.5.0+736+58cc1a5a.x86_64 is filtered out by modular filtering
Problem 2: problem with installed package buildah-1.19.8-1.module_el8.5.0+733+9bb5dffa.x86_64
- package buildah-1.19.8-1.module_el8.5.0+733+9bb5dffa.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
- package docker-ce-3:20.10.7-3.el8.x86_64 requires containerd.io >= 1.4.1, but none of the providers can be installed
- package containerd.io-1.4.3-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- package containerd.io-1.4.3-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- package containerd.io-1.4.3-3.2.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- package containerd.io-1.4.3-3.2.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- package containerd.io-1.4.4-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- package containerd.io-1.4.4-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- package containerd.io-1.4.6-3.1.el8.x86_64 conflicts with runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- package containerd.io-1.4.6-3.1.el8.x86_64 obsoletes runc provided by runc-1.0.0-70.rc92.module_el8.5.0+733+9bb5dffa.x86_64
- cannot install the best candidate for the job
- package runc-1.0.0-56.rc5.dev.git2abd837.module_el8.4.0+521+9df8e6d3.x86_64 is filtered out by modular filtering
- package runc-1.0.0-64.rc10.module_el8.4.0+522+66908d0c.x86_64 is filtered out by modular filtering
- package runc-1.0.0-70.rc92.module_el8.5.0+736+58cc1a5a.x86_64 is filtered out by modular filtering
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
输入下面的命令继续安装
yum install --allowerasing docker-ce docker-ce-cli containerd.io
8、设置开机启动并启动docker
systemctl enable docker && systemctl start docker
9、验证安装是否成功
docker version
有client和service两部分表示docker安装启动都成功了
10、查看docker启动状态:
systemctl status docker
(如下图即启动成功)
!!!特别注意!!!
我在第7步骤,安装docker时候,一直在报错。具体错误,我就不复现了。基本如下:
省略一堆。。。。。。。。。
Error Summary
-------------
我捣鼓了很久,是因为虚拟机已经有了一个docker-ce-cli.x86_64。很奇怪,第一步没有卸载掉。。。
如果出现此错误,可以使用如下办法检测:
1、查询安装过的包
yum list installed | grep docker
2、删除上边那个包
yum -y remove docker-engine.x86_64
比如说1中查出来的是 docker-engine.x86_64,那就删除它,其他类似。