配置拉取镜像加速地址

dockerd服务

docker命令

  1. 确认配置文件路径

    ps -ef | grep [d]ockerd | grep -o '[a-Z/]*daemon.json'
    
  2. 配置镜像加速地址

        "registry-mirrors": [
            "https://dockerproxy.com",
            "https://docker.m.daocloud.io",
            "https://hub-mirror.c.163.com"
        ],
    

    img

  3. 重启服务

    sudo systemctl restart docker
    

containerd服务

确认containerd服务是否有配置registry配置路径

sudo grep config_path `ps -ef | grep "[c]ontainerd " | awk '{print $NF}'`

如果上没有配置的话。建议配置上。

  1. 使得containerd服务配置文件没有这么臃肿。
  2. 后续仓库配置都 不需要 重启 containerd 服务

设置方法 sudo sed -ri 's@(config_path).*@\1 = "/etc/containerd/certs.d"@g' /etc/containerd/config.toml 。需要重启 containerd 服务

crictl命令配置

目录结构详情: registry配置路径 - 镜像仓库地址(如果有端口得带上端口信息) - hosts.toml

img

docker.io示例

sudo mkdir -p /etc/containerd/certs.d/docker.io

cat <<'EOF' | sudo tee /etc/containerd/certs.d/docker.io/hosts.toml > /dev/null
server = "https://docker.io"
[host."https://dockerproxy.com"]
  capabilities = ["pull", "resolve"]

[host."https://docker.m.daocloud.io"]
  capabilities = ["pull", "resolve"]

[host."https://hub-mirror.c.163.com"]
  capabilities = ["pull", "resolve"]
EOF

registry.k8s.io示例

sudo mkdir -p /etc/containerd/certs.d/registry.k8s.io

cat <<'EOF' | sudo tee /etc/containerd/certs.d/registry.k8s.io/hosts.toml > /dev/null
server = "https://registry.k8s.io"
[host."https://k8s.m.daocloud.io"]
  capabilities = ["pull", "resolve"]
EOF

k8s.gcr.io示例

sudo mkdir -p /etc/containerd/certs.d/k8s.gcr.io

cat <<'EOF' | sudo tee /etc/containerd/certs.d/k8s.gcr.io/hosts.toml > /dev/null
server = "https://k8s.gcr.io"
[host."k8s-gcr.m.daocloud.io"]
  capabilities = ["pull", "resolve"]
EOF

daocloud文档:https://docs.daocloud.io/community/mirror/
daocloud github地址: https://github.com/DaoCloud/public-image-mirror

ctr命令配置

配置文件、目录结构与 crictl 一致,ctr 命令仍是 未生效 加速地址拉起镜像。

解决方法ctr 命令拉起镜像添加 --hosts-dir 可以实现到拉取镜像加速。

示例:ctr --debug image pull docker.io/library/alpine:3.18 --hosts-dir /etc/containerd/certs.d

img

【推荐】:使用 crictl 命令拉取镜像。

nerdctl命令配置

配置文件、目录结构与 crictl 一致。

注意:配置路径 只能/etc/containerd/certs.d 目录下

验证方法

判断是否使用代理?

  • docker服务: docker info | grep Proxy
    img

  • containerd服务:systemctl cat containerd | grep Environment 查看是否有环境变量
    img

使用代理

tcpdump -enn -vvv -i [网卡名] 'host [proxy地址] or host [镜像加速地址]'

示例:tcpdump -enn -vvv -i eth0 ' host x.x.x.x or host dockerproxy.com'

参数值说明:

  1. 网卡名:通 proxy地址 的网卡名
  2. proxy地址:上面查到的地址(网络代理)
  3. 镜像加速地址:运行时配置的镜像加速地址

未使用代理

tcpdump -enn -vvv -i [出公网网卡名] host [镜像加速地址]

示例:tcpdump -enn -vvv -i eth1 host dockerproxy.com

抓包结果图

img

posted @   jiaxzeng  阅读(1372)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-02-20 ceph 删除 osd
2022-02-20 python2.7管理kvm虚拟主机
点击右上角即可分享
微信分享提示