【Linux】Docker 换源 | 解决 1Panel 安装应用时拉取镜像失败

在安装 1Panel 时可以选择镜像加速。这等同于自动编辑了文件

sudo vim /etc/docker/daemon.json

然后将源更换为 1panel 自己的镜像仓库

{
        "registry-mirrors": ["https://docker.1panelproxy.com"]
}

现在的问题是,这个源并不好用。在京东云手动安装的 1Panel 会出现安装 docker 应用失败的情况(即便在安装时选择镜像加速),提示 docker pull 经常遇到的问题:stderr: Error response from daemon: Get “https://registry-1.docker.io/v2/”: context deadline exceeded。

但是,在腾讯云预装的 1Panel 中安装 docker 应用没有出现过失败的情况。所以,肯定是腾讯云和京东云的源有所不同。能不能都用腾讯服务器的源呢?

# 京东云使用 1Panel 的源
{
        "registry-mirrors": ["https://docker.1panelproxy.com"]
}

# 腾讯云
{
        "registry-mirrors": [
                "https://mirror.ccs.tencentyun.com"
        ]
}

官方有说明,不能将腾讯云的源在非腾讯内网的主机上使用。此路不通。

https://cloud.tencent.com/document/product/1207/45596

考虑采取另外两种方法:

1. 暴力换源

添加多个源(万一有用呢)

sudo vim /etc/docker/daemon.json

{
"registry-mirrors": [
  "https://docker.1panelproxy.com",
  "https://registry.docker-cn.com",
  "https://s4uv0fem.mirror.aliyuncs.com",
  "https://docker.1ms.run",
  "https://registry.dockermirror.com",
  "https://docker.m.daocloud.io",
  "https://docker.kubesre.xyz",
  "https://docker.mirrors.ustc.edu.cn",
  "https://docker.1panel.live",
  "https://docker.kejilion.pro",
  "https://dockercf.jsdelivr.fyi",
  "https://docker.jsdelivr.fyi",
  "https://dockertest.jsdelivr.fyi",
  "https://hub.littlediary.cn",
  "https://proxy.1panel.live",
  "https://docker.1panelproxy.com",
  "https://image.cloudlayer.icu",
  "https://docker.1panel.top",
  "https://docker.anye.in",
  "https://docker-0.unsee.tech",
  "https://hub.rat.dev",
  "https://hub3.nat.tf",
  "https://docker.1ms.run",
  "https://func.ink",
  "https://a.ussh.net",
  "https://docker.hlmirror.com",
  "https://lispy.org",
  "https://docker.yomansunter.com",
  "https://docker.xuanyuan.me",
  "https://docker.mybacc.com",
  "https://dytt.online",
  "https://docker.xiaogenban1993.com",
  "https://dockerpull.cn",
  "https://docker.zhai.cm",
  "https://dockerhub.websoft9.com",
  "https://dockerpull.pw",
  "https://docker-mirror.aigc2d.com",
  "https://docker.sunzishaokao.com",
  "https://docker.melikeme.cn"
  ]
}

修改完成记得重启服务

sudo systemctl daemon-reload && 
sudo systemctl restart docker

2. 代理

注意,docker pull /push 这类的操作,受到 http/https 代理影响。

可以在 1Panel 中设置自己代理的端口,前提是该端口已有代理服务监听,类似 Clash 的 7890 默认端口。

也可以 export https_proxy,尽量大小写都设置。写入 bashrc,确保对 1Panel 生效,如果 1Panel 在容器中,那么可能要修改 docker-compose 文件,设置正确的端口映射和环境变量。

上一篇
下一篇