docker 拉取1个go 1.25.6 docker ,并且把他推送到阿里云acr

TwoAdmin 2025-10-15 26 10/15

完整操作步骤

1. 登录 Docker Hub 和阿里云 ACR

bash
# 登录 Docker Hub(拉取镜像)
docker login

# 登录阿里云 ACR(替换为你的实际地址)
docker login --username=你的阿里云用户名 your-images-registry.cn-beijing.cr.aliyuncs.com

2. 拉取 Go 1.25.6 镜像

bash
# 从官方仓库拉取
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)

根据你的错误日志中的仓库地址,执行以下命令:

bash
# 标记标准版本
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

bash
# 推送标准版本
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. 验证推送结果

bash
# 查看本地镜像
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

bash
#!/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"

执行脚本:

bash
chmod +x push-go-to-acr.sh
./push-go-to-acr.sh

修改 Dockerfile 使用新镜像

推送完成后,修改你的 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

# 后续步骤...

注意事项

  1. Go 1.25.6 可用性:截至 2026年4月,Go 最新稳定版是 1.24.x,1.25.6 可能还未发布。如果拉取失败,使用最新的稳定版:

bash
# 查看可用版本
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
  1. 如果遇到权限问题

bash
# 确保你有推送权限
# 在阿里云 ACR 控制台创建命名空间和仓库
# 仓库名称:golang1.25.6
  1. 加速拉取(如果拉取慢):

bash
# 使用国内镜像加速
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 -
Tag:

TwoAdmin

4月13日13:43

最后修改:2026年4月13日
0

非特殊说明,本博所有文章均为博主原创。