Dockerhub无法查看镜像问题

Docker搜索镜像版本

自从2023年5月中旬,著名Docker 容器平台: http://hub.docker.com “不知” 何种原因国内均无法正常访问了。

国内使用docker面临两个问题:

  1. 镜像无法下载

  2. 无法查看镜像版本

解决方案:

1、配置国内镜像源

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://xxxx.mirror.aliyuncs.com",
        "https://hub-mirror.c.163.com"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

其中第一个是向aliyun申请的,个人应该都是不一样的

uTools_1697937755652.png

2、使用shell脚本去搜索镜像最新版本

找了不少文档,发现他们的查询脚本都已经过时,找不到正确的搜索路径。在使用jenkins时,发现有个插件 image-tag-parameter 可以查询镜像版本,从里面找到最新的查询路径。

uTools_1697938922195.png

仿照其他人的脚本写了下

 vim /usr/bin/dockertag 
#!/bin/bash

repo_url=https://hub-mirror.c.163.com
image_name=$1
tag=$2
if [[ -n "${image_name}" ]]; then
    echo "Search image ${image_name} on ${repo_url}"
else
    echo "Error! You should input the name of image!"
    exit 1
fi
if [[ "${image_name}" != *"/"* ]]; then
   image_name="library/${image_name}"     
fi
tag_list=$(curl -s -S "${repo_url}/v2/${image_name}/tags/list" | jq '.tags')
for((i=$(echo ${tag_list} | jq 'length')-1;i>=0;i--)); do
    t=$(echo $tag_list | jq ".[$i]" | sed 's/\"//g')   
    if [[ -z "${tag}" ]]; then
        echo "$image_name:$t"       
    elif [[ "${t}" == *"${tag}"* ]]; then
        echo "$image_name:$t"
    fi
done

chmod 741 /usr/bin/dockertag

注意:脚本需要依赖 jq 工具,没有的安装一下

yum install jq -y

Example:

dockertag mysql;
dockertag nacos/ncaos-server
dockertag redis 6

最后新人真的需要鼓励,点个收藏和关注吧 o(╥﹏╥)o

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容