目录
- 推送到 Docker Hub
- 前提:需要在 [Docker Hub](https://hub.docker.com/) 创建账户、创建仓库。
- 1. 创建 Dockerfile 和构建镜像:`docker build -t`
- 2. 登录到远程镜像库:`docker login`
- 3. 将镜像标记为远程仓库地址:`docker tag`
- 4. 推送镜像到远程仓库: `docker push`
- 5. 拉取远程镜像:`docker pull`
- 推送到 GitHub Package Registry 注册表(可关联GitHub仓库)
- 前提:需要在GitHub创建个人访问令牌
- 1. 创建 Dockerfile 和构建镜像: `docker build -t `
- 2. 登录到远程镜像库:`docker login ghcr.io`
- 3. 将镜像标记为远程仓库地址: `docker tag`
- 4. 推送镜像到远程仓库: `docker push`
- 5. 拉取远程镜像: `docker pull`
- 构建多种系统架构支持的Docker镜像,推送到Docker Hub
- 1. 编写支持多种系统架构的dockerfile文件
- 2. 构建及推送命令:`docker buildx build -t`
推送到 Docker Hub
前提:需要在 Docker Hub 创建账户、创建仓库。
1. 创建 Dockerfile 和构建镜像:docker build -t
在本地项目目录中创建一个 Dockerfile,定义您的容器镜像配置。然后使用以下命令构建镜像:
docker build -t your-image-name:tag .
将 your-image-name 替换为您的镜像名称,tag 替换为镜像标签。
2. 登录到远程镜像库:docker login
登录到您的远程镜像库
docker login
3. 将镜像标记为远程仓库地址:docker tag
使用以下命令将本地构建的镜像标记为远程仓库地址:
docker tag your-image-name:tag your-docker-hub-username/your-repo-name:tag
4. 推送镜像到远程仓库: docker push
使用以下命令将标记后的镜像推送到远程仓库:
docker push your-docker-hub-username/your-repo-name:tag
5. 拉取远程镜像:docker pull
docker pull your-username/your-image-name:tag
推送到 GitHub Package Registry 注册表(可关联GitHub仓库)
前提:需要在GitHub创建个人访问令牌
- 在GitHub创建个人访问令牌:参考官方文档
- 建议将令牌保存为环境变量
$ vim ~/.zshr export CR_PAT=YOUR_TOKEN $ source ~/.zshrc
1. 创建 Dockerfile 和构建镜像: docker build -t
在本地项目目录中创建一个 Dockerfile,定义您的容器镜像配置。然后使用以下命令构建镜像:
docker build -t your-image-name:tag .
将 your-image-name 替换为您的镜像名称,tag 替换为镜像标签。
2. 登录到远程镜像库:docker login ghcr.io
登录到您的远程镜像库
docker login ghcr.io
或者使用环境变量中的令牌
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin> Login Succeeded
3. 将镜像标记为远程仓库地址: docker tag
使用以下命令将本地构建的镜像标记为远程仓库地址:
替换 your-username 和 your-image-name 为您的 GitHub 用户名和镜像名称。
docker tag your-image-name:tag ghcr.io/your-username/your-image-name:tag#举例
docker tag xapi-backend-image:1.0.0 ghcr.io/xiaoxiongmao5/xapi-backend:1.0.0
4. 推送镜像到远程仓库: docker push
使用以下命令将标记后的镜像推送到远程仓库:
docker push ghcr.io/your-username/your-image-name:tag#举例
docker push ghcr.io/xiaoxiongmao5/xapi-backend:1.0.0
5. 拉取远程镜像: docker pull
docker pull ghcr.io/your-username/your-image-name:tag
构建多种系统架构支持的Docker镜像,推送到Docker Hub
1. 编写支持多种系统架构的dockerfile文件
# syntax=docker/dockerfile:1.2FROM golang:1.20.8-alpine AS x86_64_builder# 设置工作目录
WORKDIR /appCOPY . .RUN go build -o funclist main.go# 使用 Alpine Linux 作为最终的基础镜像,这是一个轻量级的Linux发行版,通常用于构建小型Docker容器
FROM alpine:latest AS x86_64_final# 安装 GLIBC 和其他运行时库
RUN apk --no-cache add ca-certificates libc6-compatWORKDIR /appCOPY --from=x86_64_builder /app/funclist .EXPOSE 8000CMD ["./funclist"]FROM golang:1.20.8-alpine AS arm64v8_builderWORKDIR /appCOPY . .RUN go build -o funclist main.goFROM alpine:latest AS arm64v8_finalRUN apk --no-cache add ca-certificates libc6-compatWORKDIR /appCOPY --from=arm64v8_builder /app/funclist .EXPOSE 8000CMD ["./funclist"]
2. 构建及推送命令:docker buildx build -t
docker buildx build -t your-docker-hub-username/your-repo-name:tag --platform linux/amd64,linux/arm64 . --push
#举例
docker buildx build -t xiaoxiongmao5/funclist:1.0.1 --platform linux/amd64,linux/arm64 . --push