Docker拉取镜像失败解决办法

Docker无法拉取镜像解决办法

一.现象描述

在docker拉取镜像的时候重复拉取镜像然后超时。

二.解决办法

1.配置国内镜像源地址加速

vi /etc/docker/daemon.json

在文件中增加如下内容

{
"registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ]
}

重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

2.通过git hub项目把docker hub的镜像同步到阿里云个人镜像仓库或者harbor私服

原理:Github Action + Skopeo 工具同步docker hub镜像

首先注册阿里云账号。

然后访问 https://help.aliyun.com/zh/acr/?source=5176.11533457&userCode=uelj47qf 进行ACR服务订阅

image-20240619095303590

点击免费试用

image-20240619095728592

选择立即试用,然后选择个人实例

image-20240619095836528

根据步骤设置密码和命名空间image-20240619100011466

然后,在Github中创建账户以及仓库

示例仓库:https://github.com/Shanyoufusu12/images-sysncer

image-20240619174424555

然后新增文件sync-image-example.yml,内容如下

# 工作流名称
name: Sync-Images-to-DockerHub-Example
# 工作流运行时显示名称
run-name: ${{ github.actor }} is Sync Images to DockerHub.
# 怎样触发工作流
on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# 工作流程任务(通常含有一个或多个步骤)
jobs:
  syncimages:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout Repos
      uses: actions/checkout@v3
      
    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v2.9.1

    - name: Login to Docker Hub
      uses: docker/login-action@v2.2.0
      with:
        registry: registry.cn-hangzhou.aliyuncs.com
        username: ${{ secrets.DOCKER_USERNAME }}
        password: ${{ secrets.DOCKER_PASSWORD }}
        logout: false
        
    - name: Use Skopeo Tools Sync Image to Docker Hub
      run: |
        #!/usr/bin/env bash
        skopeo copy docker://docker.io/rancher/fleet-agent:v0.9.5 docker://registry.cn-hangzhou.aliyuncs.com/rancher-images/fleet-agent:v0.9.5

其中secrets.DOCKER_USERNAMEsecrets.DOCKER_PASSWORD需要自己配置,registry.cn-hangzhou.aliyuncs.com是阿里云镜像仓库的地址。

配置方法如下:

image-20240619174757051

image-20240619175122886

skopeo copy docker://docker.io/rancher/fleet-agent:v0.9.5 docker://registry.cn-hangzhou.aliyuncs.com/rancher-images/fleet-agent:v0.9.5,其中docker://docker.io为docker hub仓库的镜像源地址,此处复制的镜像为rancher/fleet-agent:v0.9.5registry.cn-hangzhou.aliyuncs.com为阿里云的镜像源地址,rancher-images是前面新建的命名空间。每次运行前修改镜像源地址即可。

保存代码后可以在Actions页面查看脚本运行结果

image-20240619175441622

image-20240619175515533

然后就可以在阿里云的镜像仓库看到复制后的镜像。

image-20240619175613052

posted @ 2024-06-19 18:23  山有扶苏QWQ  阅读(6366)  评论(6编辑  收藏  举报