当前位置: 首页 > news >正文

docker推送本地仓库报错

(base) root@ainode3:~# dp 192.168.2.186:5000/bert-deepspeed:latest
The push refers to repository [192.168.2.186:5000/bert-deepspeed]
Get "http://192.168.2.186:5000/v2/": dial tcp 192.168.2.186:5000: connect: connection refused

排查思路如下:
首先docker ps | grep you_container,然后看看是不是容器崩掉了,直接重新启动就行了

从错误信息来看:

Get "http://192.168.2.186:5000/v2/": dial tcp 192.168.2.186:5000: connect: connection refused

问题是 Docker 在尝试推送镜像到 192.168.2.186:5000 时,无法连接到该地址。具体问题可能是目标 Docker 镜像仓库服务没有运行,或者目标服务器上的 5000 端口没有开放。

排查和解决步骤

1. 检查目标服务器的 Docker Registry 服务

确保目标服务器上的 Docker Registry 服务已经启动,并且在 5000 端口监听。你可以通过以下命令检查:

sudo systemctl status docker-registry

如果没有启动 Docker Registry 服务,可以通过以下命令启动它:

sudo systemctl start docker-registry

如果你的 Docker Registry 是通过 Docker 容器运行的,可以使用以下命令查看容器的状态:

docker ps | grep registry

如果没有运行,请启动 Docker Registry 容器:

docker run -d -p 5000:5000 --name registry registry:2
2. 检查防火墙设置

确保目标服务器(192.168.2.186)的防火墙没有阻止 Docker Registry 的端口(5000)。你可以查看防火墙规则并允许访问该端口:

sudo ufw allow 5000/tcp

如果你使用的是 iptables,可以添加相应的规则:

sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT
3. 确保目标机器上 Docker 正在运行

确保目标服务器上的 Docker 服务是运行的,可以使用以下命令查看 Docker 服务状态:

sudo systemctl status docker

如果 Docker 服务未启动,启动它:

sudo systemctl start docker
4. 确认 Docker Registry 可用

你可以尝试在目标服务器上执行 curl 命令检查 Docker Registry 是否可用:

curl http://192.168.2.186:5000/v2/

如果返回 {"errors":[{"code":"UNAUTHORIZED","message":"authentication required"}]} 或其他正常的响应,说明 Docker Registry 服务正在正常运行。如果没有响应或显示连接被拒绝,则说明问题可能出在服务器配置或网络问题上。

5. 检查 Docker 镜像推送的命令格式

确保你推送镜像的命令格式是正确的。例如:

docker tag bert-deepspeed:latest 192.168.2.186:5000/bert-deepspeed:latest
docker push 192.168.2.186:5000/bert-deepspeed:latest

确保镜像标签已经正确设置为目标仓库地址。

6. 检查 Docker 配置

如果你的 Docker Registry 配置为使用 HTTPS 连接而不是 HTTP,请确保客户端配置正确,并且你为 Registry 配置了正确的 SSL/TLS 证书。如果 Registry 使用 HTTP,请确保你在 Docker 配置文件中正确设置了不安全的注册表:

编辑 /etc/docker/daemon.json

{"insecure-registries": ["192.168.2.186:5000"]
}

然后重启 Docker 服务:

sudo systemctl restart docker

总结

  • 确保目标服务器上的 Docker Registry 服务正常运行。
  • 检查防火墙设置,确保 5000 端口可访问。
  • 确认目标机器上的 Docker 服务正常运行。
  • 测试 Docker Registry 服务的可用性(使用 curl 或其他工具)。
  • 确保推送命令格式正确并且镜像标签已经设置正确。

通过这些步骤,你应该能够解决 connection refused 的问题。

http://www.lryc.cn/news/518281.html

相关文章:

  • Python中的asyncio:高效的异步编程模型
  • Oopsie【hack the box】
  • 详细介绍 React 中 i18n 的完整使用流程:
  • 部署:上传项目代码 配置数据库
  • C++—9、如何在Microsoft Visual Studio中调试C++
  • 11. C 语言 作用域与变量使用技巧
  • 【机器学习案列】学生抑郁可视化及预测分析
  • Perl语言的循环实现
  • SpringBoot项目——使用Spark对爬虫爬取下的数据进行清洗
  • 分布式锁 Redis vs etcd
  • 《深度剖析:开源与闭源模型,AI舞台上的不同角色》
  • Angular结合C#
  • Spring——自动装配
  • Servlet与JSP:Java的秘密花园入口
  • 【Linux】Linux常见指令(上)
  • ELFK日志采集实战
  • Kubernetes 使用自定义资源(CRD)扩展API
  • 用户使用LLM模型都在干什么?
  • MySQL常用命令之汇总(Summary of Commonly Used Commands in MySQL)
  • 六年之约day10
  • springboot和vue配置https请求
  • selenium遇见伪元素该如何处理?
  • 慧集通(DataLinkX)iPaaS集成平台-数据质量
  • 微软发布AIOpsLab:一个开源的全面AI框架,用于AIOps代理
  • ElasticSearch | Elasticsearch与Kibana页面查询语句实践
  • 12.C语言中的struct详解:定义、赋值、指针、嵌套与位字段
  • 文件读写到SQLite数据库的方法
  • springboot项目部署至linux
  • 使用sed命令封装自定义dos2unix脚本
  • 调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序