错误是访问超时问题有两种解决方式,你可以自己尝试切换一些镜像尝试比如阿里,清华等镜像
第一种解决方法
示例【以下镜像可以用,如果使用不了的话可以自己在网上找找最好是一个不要一下子添加太多进去如果第一个镜像用不了有可能导致后面的镜像都无法使用上】:
一般文件都在/etc/docker文件下,如果你没有daemon.json文件可以自己手动创建一个,如果不行你可以将daemon.json文件后缀改为conf
{
"registry-mirrors": ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"]
}
第二种解决方式,如果上面的都不行我们可以使用docker pull daocloud.io/library/redis:latest 代替 docker pull redis包括mysql等等这些都是可以用临时手动指定仓库完成下载
示例:
第一步
docker pull daocloud.io/library/mysql:latest或者8.0 代替 docker pull mysql
第二步
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=【密码】 -p 3306:3306 -d daocloud.io/library/mysql:8.0
第三步
docker exec -it mysql8 mysql -uroot -p
第四步就是允许mysql的远程访问
// 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
//远程访问密码
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
// 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
//刷新
FLUSH PRIVILEGES;
// 退出mysql
EXIT;
以上方式如果不行请检查网络问题
命令:
// 测试是否能够访问 Docker Hub
curl -I https://registry-1.docker.io/v2/
如果不能访问可以用一下方法解决
1.你可以通过以下命令临时禁用 IPv6
echo 1 | sudo tee /proc/sys/net/ipv6/conf/all/disable_ipv6
2.然后应用更改
sudo sysctl -p
3.检查网络连接和路由
ping 8.8.8.8
traceroute 8.8.8.8
4.修改 Docker 的 DNS 设置(文件位置/etc/docker/daemon.json没有自己创建一个)
{
"dns": ["8.8.8.8", "8.8.4.4"],
"registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"]
}
5.重启docker服务以应用更改
sudo systemctl daemon-reload
sudo systemctl restart docker
6.再尝试拉取一下镜像
docker pull openjdk:8或者docker pull redis