昨天手动部署公司网站前端发现报错了,报错信息为:
ERROR: failed to solve: DeadlineExceeded: DeadlineExceeded: DeadlineExceeded: nginx: failed to copy: httpReadSeeker: failed open: failed to do request: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/08/08074a2e9d751d3de313cbcdaabb9bb879dc3167b5cf6d2af05ae0190356d5f8/data?verify=1718624421-7xQEhd%2BohVdGIKnK%2FgItJa8FHGo%3D": dial tcp 108.160.166.57:443: i/o timeout。
百度之后发现是镜像源出了问题,拉不了nginx的最新镜像。
更换步骤如下:
1.查看etc下的docker文件夹中是否存在daemon.json文件,如不存在需自行创建
2.找到国内各大镜像源地址(虽然能找到,但是不一定都能用,需要自己去一个个测试是否能用,例如我用了最新的阿里云docker源依旧没法拉取镜像)
docker pull hub-mirror.c.163.com/library/nginx:latest
docker pull mirror.baidubce.com/library/nginx:latest
docker pull ccr.ccs.tencentyun.com/library/nginx:latest
docker pull dockerproxy.com/library/nginx:latest
测试完之后只有腾讯的可以拉取成功
3.在文件里输入以下代码
{
"registry-mirrors":[
"https://ccr.ccs.tencentyun.com"(腾讯最新镜像源)
],
"features": {
"buildkit": false
}
}
4.重载daemon配置
systemctl daemon-reload
5.重启docker
systemctl restart docker之后就可以成功生成镜像并发布了