m0_73046505 2025-03-04 21:35 采纳率: 0%
浏览 48

ctr拉取镜像时报错拒绝连接,如何解决?(操作系统-linux)

最近新学搭建k8s集群,却一直在报同一个错误(6443refused)❌,后面重装了系统(centos8),安装container(v1.6.37)和runc(1.2.5),应用状态Running,日志正常,但使用ctr拉取镜像时一直报registry.docker.io拒绝连接,已经麻了,各位牛友们能不能支支招啊,过程如下
二进制安装containerd

wget https://github.com/containerd/containerd/releases/download/v1.6.37/containerd-1.6.37-linux-amd64.tar.gz

tar -xvf containerd-1.6.37-linux-amd64.tar.gz bin/
cp bin/* /usr/local/bin/
containerd -v
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml

修改配置文件vim /etc/containerd/config.toml,修改点如下

    config_path = "/etc/containerd/certs.d"
    sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"

添加镜像加速

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

生成service文件

echo  << EOF>>  /etc/systemd/system/containerd.service
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target
[Service]
# 预加载 overlay 内核模块(若需)
ExecStartPre=-/usr/sbin/modprobe overlay

# 启动 containerd 主进程
ExecStart=/usr/local/bin/containerd

# 设置进程类型为 notify(通知 Systemd 状态变化)
Type=notify

# 允许容器进程继承主进程的 cgroup
Delegate=yes

KillMode=process

# 强制重启策略
Restart=always
RestartSec=5

# 资源限制(示例值)
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity

# 其他优化参数
TasksMax=infinity
OOMScoreAdjust=-999


[Install]
WantedBy=multi-user.target
EOF

启动containerd服务

```bash
chmod 644 /etc/systemd/system/containerd.service

systemctl daemon-reload && systemctl start containerd && systemctl enable containerd

安装runc

wget https://github.com/opencontainers/runc/releases/download/v1.2.5/runc.amd64
chmod a+x runc.amd64
mv runc.amd64 /usr/bin/runc

拉取镜像报错

[root@master app]# ctr image pull docker.io/library/nginx:alpine
docker.io/library/nginx:alpine: resolving      |------------------------------------
elapsed: 20.9s                  total:   0.0 B (0.0 B/s)                                  
INFO[0021] trying next host                              error="failed to do request\"https://registry-1.docker.io/v2/library/nginx/manifests/alpine\": dial tcp 108.1605:443: connect: connection refused" host=registry-1.docker.io
ctr: failed to resolve reference "docker.io/library/nginx:alpine": failed to do requad "https://registry-1.docker.io/v2/library/nginx/manifests/alpine": dial tcp 108.1675:443: connect: connection refused
  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2025-03-04 21:35
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题解答

    你遇到的问题是 registry.docker.io refused,导致无法访问 Docker Hub。这个问题可能是由于网络问题、代理问题或 Docker 配置问题引起的。

    以下是一些可能的解决方案:

    1. 检查网络连接:确保你的机器可以访问 Docker Hub(registry.docker.io)。你可以使用 curl 命令来测试网络连接:
    curl -v https://registry.docker.io
    

    如果连接失败,可以检查网络设置、代理设置或 DNS 问题。

    1. 检查 Docker 配置:确保 Docker 配置正确。可以使用以下命令来检查 Docker 配置:
    docker info
    

    如果发现配置问题,可以尝试重新配置 Docker。

    1. 检查 Docker Hub 代理设置:如果你使用了代理,可以尝试将代理设置为 httphttps
    export http_proxy=http://your-proxy:port
    export https_proxy=http://your-proxy:port
    
    1. 检查 Docker Hub 证书:如果你使用了自签名证书,可以尝试将证书添加到 Docker 的证书存储中:
    docker trust add registry.docker.io
    
    1. 重启 Docker 服务:尝试重启 Docker 服务:
    systemctl restart docker
    

    如果以上解决方案都不能解决问题,可以提供更多的日志信息或错误信息,以便更好地 debug。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月4日
  • 修改了问题 3月4日
  • 创建了问题 3月4日