配置加速源

编辑如下文件切换加速源

sh
1
vim /etc/docker/daemon.json

目前国内镜像源已经挂了很多了,截止现在 2023.10, 以下三个亲测可用
其中阿里源要自己申请私人地址,看这里教程

在 docker 的 daemon.json 写入如下,当然,也可以只设置其中一个

json
1
2
3
4
5
6
7
{
"registry-mirrors": [
"https://mirror.baidubce.com",
"https://<sth>.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"
]
}

然后 sudo systemctl restart docker 即可

查看镜像源是否生效

可以通过 docker info 命令,看看镜像地址是否在 registry
这代表了是否配置成功.

但是镜像源是否仍然有效,目前并没有一个优雅地方式来检查.
只能在 docker pull 的过程中看看网络连接的 IP 是否为国内的源地址。命令如下

sh
1
sudo ss -ntp | grep dockerd

然后拿着 IP 去查询地址就行,可以在这查询

终极方法

终极方法就是科学上网,直接官方镜像.

配置 docker pull 的代理如下

sh
1
2
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf

然后写入如下

text
1
2
3
4
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

把网址改成自己的代理地址即可。本机就是 localhost

如果是容器内部通信,在 ~/.docker/config.json 配置代理即可

json
1
2
3
4
5
6
7
8
9
{
"proxies": {
"default": {
"httpProxy": "http://your-ip:port",
"httpsProxy": "http://your-ip:port",
"noProxy": ""
}
}
}

如果代理就在本机,ip 一般是 docker 网桥: 172.17.0.1

图形界面的教程网上可以直接搜,命令行界面可以看我写的教程


参考文章
https://cloud.tencent.com/developer/article/1806455