完整操作步骤
1. 登录 Docker Hub 和阿里云 ACR
# 登录 Docker Hub(拉取镜像) docker login # 登录阿里云 ACR(替换为你的实际地址) docker login --username=你的阿里云用户名 your-images-registry.cn-beijing.cr.aliyuncs.com
2. 拉取 Go 1.25.6 镜像
# 从官方仓库拉取 docker pull golang:1.25.6 # 或者拉取 alpine 版本,并指定amd64架构(体积更小) docker pull --platform linux/amd64 golang:1.25.6-alpine # 拉取 slim 版本 docker pull golang:1.25.6-slim
3. 标记镜像(Tag)
根据你的错误日志中的仓库地址,执行以下命令:
# 标记标准版本 docker tag golang:1.25.6 your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:latest # 同时标记具体版本号 docker tag golang:1.25.6 your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:1.25.6 # 如果使用 alpine 版本 docker tag golang:1.25.6-alpine your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:alpine
4. 推送到阿里云 ACR
# 推送标准版本 docker push your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:latest docker push your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:1.25.6 # 推送 alpine 版本 docker push your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:alpine
5. 验证推送结果
# 查看本地镜像 docker images | grep golang # 测试拉取(先删除本地镜像) docker rmi your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:latest docker pull your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:latest
完整脚本(一键执行)
创建脚本文件 push-go-to-acr.sh:
#!/bin/bash # 配置变量 REGISTRY="your-images-registry.cn-beijing.cr.aliyuncs.com" NAMESPACE="yourspec" IMAGE_NAME="golang1.25.6" GO_VERSION="1.25.6" # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' echo -e "${GREEN}开始拉取 Go ${GO_VERSION} 镜像...${NC}" # 拉取镜像 docker pull --platform linux/amd64 golang:${GO_VERSION} docker pull --platform linux/amd64 golang:${GO_VERSION}-alpine # 标记镜像 echo -e "${GREEN}标记镜像...${NC}" docker tag golang:${GO_VERSION} ${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:latest docker tag golang:${GO_VERSION} ${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${GO_VERSION} docker tag golang:${GO_VERSION}-alpine ${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:alpine # 登录 ACR(需要手动输入密码) echo -e "${GREEN}请登录阿里云 ACR...${NC}" docker login ${REGISTRY} # 推送镜像 echo -e "${GREEN}推送镜像到 ACR...${NC}" docker push ${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:latest docker push ${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${GO_VERSION} docker push ${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:alpine echo -e "${GREEN}完成!镜像已推送到:${NC}" echo "${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:latest" echo "${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${GO_VERSION}" echo "${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:alpine"
执行脚本:
chmod +x push-go-to-acr.sh
./push-go-to-acr.sh
修改 Dockerfile 使用新镜像
推送完成后,修改你的 Dockerfile:
# 使用新的镜像
FROM your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:latest AS builder
# 或者使用 alpine 版本(更小)
# FROM your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.25.6:alpine AS builder
WORKDIR /app
# 设置 Go 环境
RUN go env -w GO111MODULE=on \
&& go env -w GOPROXY=https://goproxy.cn,direct \
&& go env -w GOTOOLCHAIN=auto
# 后续步骤...
注意事项
-
Go 1.25.6 可用性:截至 2026年4月,Go 最新稳定版是 1.24.x,1.25.6 可能还未发布。如果拉取失败,使用最新的稳定版:
# 查看可用版本 docker search golang --limit 10 # 使用最新稳定版 docker pull golang:1.24.4 docker tag golang:1.24.4 your-images-registry.cn-beijing.cr.aliyuncs.com/yourspec/golang1.24.4:latest
-
如果遇到权限问题:
# 确保你有推送权限 # 在阿里云 ACR 控制台创建命名空间和仓库 # 仓库名称:golang1.25.6
-
加速拉取(如果拉取慢):
# 使用国内镜像加速 docker pull docker.mirrors.ustc.edu.cn/library/golang:1.25.6 docker tag docker.mirrors.ustc.edu.cn/library/golang:1.25.6 golang:1.25.6
- THE END -
最后修改:2026年4月13日
非特殊说明,本博所有文章均为博主原创。