1. 卸载旧版本Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3. 设置稳定仓库
# 仓库1(推荐)
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 仓库2(选)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4. 过滤测试版本
# 关闭测试版本list(只显示稳定版)
sudo yum-config-manager --enable docker-ce-edge
sudo yum-config-manager --enable docker-ce-test
5. 安装Docker CE
说明:直接安装“yum install docker-ce docker-ce-cli containerd.io”,会抛出异常:“package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3”。正确的安装姿势如下:
1. 安装containerd.io
sudo yum install -y https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
2. 安装docker-ce、docker-ce-cli
# ❶ 安装最新版本的docker-ce
yum install docker-ce docker-ce-cli
# ❷ 列举仓库中可提供的版本
yum list docker-ce --showduplicates | sort -r
# ❸ 安装指定版本的docker-ce
yum install docker-ce-19.03.4 docker-ce-cli-19.03.4
6. 运行Docker
sudo systemctl start docker
sudo systemctl enable docker
7. Docker权限配置
Docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,因此需要root权限才能访问。所以需要创建用户组来访问和使用。
# 添加docker用户组,如果docker用户组存在,则会提示“docker组已存在”
sudo groupadd docker
# 将当前用户(自定义用户,如:vagrant)添加至docker用户组中
sudo gpasswd -a $vagrant docker # 检测当前用户(vagrant)是否已经在docker组中
sudo gpasswd -a $USER docker # 若上述检测不存在,则可将当前用户(USER=vagrant)添加至docker组
# 更新docker用户组
newgrp docker
8. 验证
sudo docker run hello-world
sudo docker version
9. 卸载
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker
总结
CentOS8安装Docker-19.03.x时,需要自己去下载安装“containerd.io”(CentOS8默认使用podman代替docker,所以需要手动下载安装“**containerd.io**”),如果执行Docker命令时提示权限问题,可能是没有将当前用户添加到Docker用户组里。
参考
CSDN:CentOS-8安装docker最新版19.03
https://blog.csdn.net/weixin_40251892/article/details/109140770