服务CentOS8安装docker报 yum install –y docker-ce Error: Cannot encode argument ‘\udca8Cy‘: ‘utf-8‘ codec

docker安装前建议先卸载原有docker

 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

故事:本来想搭建docker容器,结果一路让我遇到了几个问题:

问题一:

利用命令进行安装,

步骤一,安装依赖包:yum install -y yum-utils device-mapper-persistent-data lvm2

步骤二,设置阿里云镜像(一定要配置,不然下载速度特别慢):yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

步骤三,安装docker:yum install –y docker-ce

结果到步骤三出现了和大多数人不同的问题,而且出现的问题在网上寻找不到答案,

原本预估问题如下:

Error:
 Problem: package docker-ce-3:19.03.6-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed

实际出现问题:

 yum install –y docker-ce Error: Cannot encode argument '\udca8Cy': 'utf-8' codec can't encode character '\udca8' in position 0: surrogates not allowed

由于寻找不到正确解决的答案,只能重新开始寻找不同的安装办法。

预估出现问题的解决方法如下:
#输入命令更新containerd.io版本
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

更新后再次执行安装docker命令即可安装成功

yum install –y docker-ce

问题二:由于问题一实际报错无法解决,因此选择了另一种安装方法:

环境查看

#查看系统内核信息

uname -r

#系统版本查看

 cat /etc/os-release

安装docker

# 查看磁盘空间
df -h
cd 具体目录
du -sh * # 查看具体的使用情况
rm -rf 文件名 #删除文件

# 1.卸载旧的版本
           yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2.需要的安装包
yum install -y yum-utils
# 3.设置镜像仓库
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
   
# 更新yum软件包索引

yum makecache fast

# 4.安装docker ,docker-ce是社区版,ee的企业版
yum install docker-ce docker-ce-cli containerd.io
# 5.启动docker
systemctl start docker

# 6.查看安装成功

docker version

注意:安装到上面步骤二时又出现了问题

Error: Failed to download metadata for repo 'appstream': Cannot prepare inte

期间尝试了更新yum但效果理想

yum clean all
yum update

经过不断努力终于找到了答案, 因为centOS8于2021年12月31日停止了源的服务,而现在时间是2023年8月11日,所以之前的安装方法都不行的原因所在(本质是源的问题)。

解决办法:

按照如下4条命令行操作执行即可:

cd /etc/yum.repos.d/

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*

sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

yum update -y

如果执行完后还是无法安装,分别继续下面命令操作

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

yum clean all

yum makecache

分别执行完上面命令行进行安装,如果还继续出现错误,需要自己切入目录中,删除所有linux文件,rm CentOS -Linux -* ,如下图:

 正常执行到此步骤已经可以正常安装docker了

docker常见操作

 #.查看下载的镜像
 docker images

卸载docker

 # 依赖卸载
 yum remove docker-ce docker-ce-cli containerd.io
 # 删除资源
 rm -rf /var/lib/docker # 默认资源路径
 rm -rf /var/lib/containerd

配置Linux镜像加速器

建议成功安装docker后,配置阿里的镜像(下载redis,jdk,mysql,nocas,ngnix等等网速快)

 执行上面的命令即可配置镜像加速器了。

命令如下:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://l3jjpxyt.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值