文章目录
- 一、先更新yum
- 二、安装yum工具
- 三、设置yum镜像
- 四、安装docker
- 五、安装完成,启动和查看版本
- 六、配置镜像
- [问题1:Docker deamon.json 文件修改之后重启不生效](#问题1:Docker deamon.json 文件修改之后重启不生效)
- [问题2:Docker拉取镜像失败?报connect: connection refused](#问题2:Docker拉取镜像失败?报connect: connection refused)
最近一直在使用MACOS的M1系列电脑开发,发现在Centos8虚拟机环境下安装docker的各种问题,在这里进行总结,以备后期使用和参考
一、先更新yum
java
yum update
报错:
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
解决:
进入yum.repos.d
目录下运行以下两条命令修改yum存储库镜像源。
java
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
二、安装yum工具
java
yum install -y yum-utils device-mapper-persistent-data lvm2
三、设置yum镜像
分别以此执行下边命令
java
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache
四、安装docker
java
yum install -y docker-ce
如果报如下错误:
Problem: package docker-ce-3:24.0.7-1.el8.aarch64 requires containerd.io >= 1.6.4, but none of the providers can be installed
改用命令:
java
yum install -y --allowerasing docker-ce
五、安装完成,启动和查看版本
java
systemctl start docker
docker -v
六、配置镜像
java
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你自己的.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
问题1:Docker deamon.json 文件修改之后重启不生效
因为不同的版本规则不一样,那就需要需要先停止服务,再启动,如下
java
sudo systemctl daemon-reload
sudo systemctl stop docker.service
sudo systemctl stop docker.socket
sudo systemctl start docker.service
sudo systemctl start docker.socket
问题2:Docker拉取镜像失败?报connect: connection refused
docker pull hello-world报错
error pulling image configuration: download failed after attempts=6: dial tcp 104.244.46.63:443: connect: connection refused
第一反应是不是服务器网络问题导致的,然后ping一下百度试试通不通
java
ping www.baidu.com
结果是通的。说明不是网络的问题。既然不是网络问题,那第二种可能就是镜像加速器地址失效了,现在很多加速器都不能使用了,下面是找了几个可以用的,后期可能也会被停掉服务吧。启用且珍惜
json
{
"registry-mirrors": ["https://cr.console.aliyun.com","https://docker.m.daocloud.io","https://public.ecr.aws","https://dockerhub.timeweb.cloud"]
}
然后使用问题1 的方式重启。重启后试试
java
docker pull hello-world