第一种方法:添加镜像源
打开 ssh 软件连接服务器
打开位于 /etc/docekr 的文件夹,如果 etc 下没有 docker 文件夹那就手动创建一个
然后进入docker文件夹
创建一个名为:daemon.json
的 json 文件
然后在文件里输入以下代码内容:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://dockerproxy.com",
"https://gcr.m.daocloud.io"
]
}
如果以上加速依然无法拉取,那试试下面的加强版
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://dockerproxy.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
]
}
然后保存并退出
最后再执行
sudo systemctl daemon-reload
systemctl restart docker
重启 docker 后再拉取镜像即可
第二种方法:自选代理
docker 命令走代理
然而实际测试下来,就算修改了国内的镜像源,有时候由于国内镜像更新不及时,或者需要拉取的镜像比较冷门,只有国外镜像站才有,那就需要让 docker pull
命令走我们的代理。
在docker的进程服务文件夹配置我们的代理设置,如果没有就新建这个文件夹
mkdir /etc/systemd/system/docker.service.d
然后在 docker.service.d
文件夹里新建我们的代理文件 proxy.conf
sudo vim proxy.conf
并把文件写如下面这个格式
[Service]
Environment="HTTP_PROXY=代理服务器ip:port"
Environment="HTTPS_PROXY=代理服务器ip:port"
假如我们本机已经设置好代理了,那么代理服务器就可以写为localhost,端口就是我们设置的http和https代理端口
[Service]
Environment="HTTP_PROXY=localhost:port"
Environment="HTTPS_PROXY=localhost:port"
最后我们仍然是验证一下是否修改成功
docker info
在长串info信息中如果出现类似下文的内容
HTTP Proxy: 代理服务器ip:port
HTTPS Proxy: 代理服务器ip:port
代表代理成功,可以正常拉取镜像了