docker aertslab/pyscenic:0.12.1 拉取异常解决方案

这里写自定义目录标题

镜像拉取失败原因分析

  1. 权限问题 :初始尝试直接执行 docker pull 命令时,遇到了 Docker 守护进程套接字的权限错误:

    复制代码
    permission denied while trying to connect to the Docker daemon socket
  2. 代理配置问题

    • 第一次设置代理环境变量时,使用 sudo -E 传递环境变量的方式可能未被 Docker 服务正确接收
    • 创建的代理配置文件格式错误,包含多余的特殊字符和格式问题,导致系统无法正确解析
  3. 网络和镜像加速器问题

    • Docker 默认尝试使用多个镜像加速器(如 ustc、tencent、aliyun、baidu 等)
    • 这些加速器要么遇到 DNS 解析失败(no such host),要么被拒绝访问(This request is forbidden
    • 最终无法连接到 Docker Hub 官方仓库
  4. DNS 解析问题:从日志中可以看到多次出现 DNS 解析失败:

    复制代码
    dial tcp: lookup docker.mirrors.ustc.edu.cn on 127.0.0.53:53: no such host

解决方案

  1. 使用 sudo 权限 :确保使用 sudo 命令获取足够的权限来执行 Docker 操作

  2. 正确配置代理

    • 删除格式错误的代理配置文件

    • 使用正确的格式重新创建代理配置文件:

      bash 复制代码
      sudo rm /etc/systemd/system/docker.service.d/proxy.conf && \
      sudo bash -c 'cat > /etc/systemd/system/docker.service.d/proxy.conf << EOF
      [Service]
      Environment="HTTP_PROXY=http://127.0.0.1:7892"
      Environment="HTTPS_PROXY=http://127.0.0.1:7892"
      Environment="NO_PROXY=localhost,127.0.0.1"
      EOF'
  3. 重启 Docker 服务

    bash 复制代码
    sudo systemctl daemon-reload && sudo systemctl restart docker
  4. 直接指定 Docker Hub 仓库

    • 使用完整的镜像路径 docker.io/aertslab/pyscenic:0.12.1 拉取,绕过可能有问题的镜像加速器
  5. 验证代理可达性

    • 在开始操作前,先使用 curl -x http://127.0.0.1:7892 https://www.google.com -I 验证代理是否正常工作

最终结果

通过以上步骤,成功拉取了 aertslab/pyscenic:0.12.1 镜像,所有层均已下载完成,并在本地 Docker 仓库中验证了镜像的存在:

复制代码
aertslab/pyscenic                                                           0.12.1          4d3790890827   3 years ago    986MB

关键经验

  1. 代理配置正确性:确保代理配置文件格式正确,系统能够正确解析
  2. 服务重启:修改代理配置后,必须重启 Docker 服务使其生效
  3. 直接指定仓库:当镜像加速器出现问题时,直接使用 Docker Hub 官方仓库路径
  4. 权限管理 :Docker 命令通常需要管理员权限,使用 sudo 执行
  5. 网络验证:在执行关键操作前,验证网络和代理是否正常工作

这些步骤确保了即使在复杂的网络环境下,也能成功拉取所需的 Docker 镜像。

相关推荐
vpk1122 小时前
【无标题】
运维·elasticsearch·docker
❀͜͡傀儡师2 小时前
通过npm 手动安装、Docker 部署 OpenClaw小龙虾
前端·docker·npm
一殊酒4 小时前
【Docker】快速入门指南
运维·docker·容器
**蓝桉**4 小时前
prometheus监控docker容器(Rocky9)
docker·容器·prometheus
面对疾风叭!哈撒给4 小时前
Linux之Docker安装Mysql 8.0+
linux·mysql·docker
linux修理工4 小时前
EasyVoice 项目部署与使用指南(开源文字互转声音)
云原生·eureka
张道宁5 小时前
基于Spring Boot与Docker的YOLOv8检测服务实战
spring boot·yolo·docker
Mr_Chenph5 小时前
备份Docker
运维·docker·容器
春日见5 小时前
端到端自动驾驶技术路线(E2E)
人工智能·机器学习·docker·架构·机器人·自动驾驶·汽车
http阿拉丁神猫6 小时前
kubernetes知识点汇总19~24
云原生·容器·kubernetes