如何用正则/通配符拉取Docker镜像或获取最新滚动版本?
如何拉取Docker滚动更新的最新镜像版本
有几种可行的方案解决这个问题:
通过Docker API查询并拉取最新标签
直接用命令调用Docker Hub的API获取镜像标签列表,筛选出最新的滚动版本。需要先安装jq工具来解析JSON数据:# 替换成你的镜像仓库地址和标签前缀 REPO="namespace/repo" TAG_PREFIX="你的前缀-" # 获取匹配前缀的最新标签 LATEST_TAG=$(curl -s "https://hub.docker.com/v2/repositories/$REPO/tags?page_size=100" | jq -r '.results[].name' | grep "^$TAG_PREFIX" | sort -V | tail -n 1) # 拉取最新镜像 docker pull "$REPO:$LATEST_TAG"其中
sort -V会按版本号的自然顺序排序,确保拿到的是最新的那个标签。尝试拉取
latest标签
不少维护滚动版本的镜像会同时提供latest标签,自动指向当前最新的滚动版本。可以直接试试:docker pull namespace/repo:latest当然前提是镜像维护者设置了这个标签,要是没有的话就用第一种方法。
写个脚本自动化操作
把查询和拉取的逻辑写成脚本,以后直接运行就能获取最新镜像,比如创建pull-latest.sh:#!/bin/bash REPO="namespace/repo" TAG_PREFIX="你的前缀-" LATEST_TAG=$(curl -s "https://hub.docker.com/v2/repositories/$REPO/tags?page_size=100" | jq -r '.results[].name' | grep "^$TAG_PREFIX" | sort -V | tail -n 1) if [ -z "$LATEST_TAG" ]; then echo "没找到匹配的标签" exit 1 fi echo "开始拉取最新镜像:$REPO:$LATEST_TAG" docker pull "$REPO:$LATEST_TAG"给脚本加执行权限:
chmod +x pull-latest.sh,之后每次运行这个脚本就行。
内容的提问来源于stack exchange,提问作者EliasV
相关产品推荐
相关产品推荐

