golang的docker sdk中有没有不用拉取latest版本镜像就可以获取到latest版本镜像的id呢ImageList不是只能获取本地仓库的镜像资源信息吗我想获取远程仓库的latest版本的镜像id而又不需要先拉取latest版本镜像到本地仓库请用golang代码
实现。
可以使用dockerhub API来获取远程仓库的镜像信息,然后从中筛选出latest版本的镜像ID。
以下是一个示例代码:
package main
import (
"encoding/json"
"fmt"
"net/http"
)
type Image struct {
Id int `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
IsOfficial bool `json:"is_official"`
IsAutomated bool `json:"is_automated"`
StarCount int `json:"star_count"`
}
func main() {
url := "https://hub.docker.com/v2/repositories/library/golang/tags/"
resp, err := http.Get(url)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
var images []Image
err = json.NewDecoder(resp.Body).Decode(&images)
if err != nil {
fmt.Println("Error:", err)
return
}
for _, image := range images {
if image.Name == "latest" {
fmt.Println("Latest image ID:", image.Id)
break
}
}
}
这个代码会从dockerhub获取golang镜像的所有标签信息,然后从中筛选出latest版本的镜像ID并输出。注意,这个代码需要在有网络连接的环境下运行
原文地址: https://www.cveoy.top/t/topic/fePM 著作权归作者所有。请勿转载和采集!