跳到主要内容

C0726D03-容器镜像管理使用手册

》 文档版本:v1.0 》 更新日期:2025-07-27 》 维护人:C0726团队

目录

  1. 背景与概述
  2. Harbor 简介与访问方式
  3. 项目结构与命名规范
  4. Docker 镜像使用规范
  5. 镜像推送与拉取指南
  6. 权限管理
  7. CI/CD 集成指南(Gitea Actions)
  8. 密钥与认证管理
  9. 安全建议
  10. 附录

背景与概述

为更好地管理 c0726 项目的容器化资源,我们部署了私有 Harbor 镜像仓库,并在其中建立了专属项目空间 c0726。该仓库用于集中管理所有与项目相关的镜像,配合 Gitea 实现自动化部署、版本控制和安全隔离。

Harbor 简介与访问方式

1. Harbor 服务信息

  • 访问地址: https://docker-repo.pleuston.org
  • 项目名称: c0726
  • 管理员邮箱: devops@greenshadecapital.com
  • TLS/SSL: 已启用SSL保护,仅允许HTTPS访问

2. 登录方式

Web 界面

  1. 打开浏览器访问 https://docker-repo.pleuston.org
  2. 使用项目分配的账户密码登录(首次由管理员提供);
  3. 登录后可查看、管理镜像仓库、用户权限、Webhook等内容。

CLI (Docker Login)

docker login docker-repo.pleuston.org
Username: 《your-username》
Password: 《your-password》

项目结构与命名规范

命名规则

镜像命名统一遵循如下格式:

docker-repo.pleuston.org/c0726/《模块名》:《版本号》

示例:

docker-repo.pleuston.org/c0726/fastapi-app:1.0.3
docker-repo.pleuston.org/c0726/nginx-proxy:latest

Tag 管理建议

  • latest:仅供开发调试使用,禁止部署到生产。
  • 《版本号》:推荐使用语义化版本(如 1.0.0),每次发布必须打具体版本。
  • 《分支标签》:如 dev, test, prod,用于环境隔离。

Docker 镜像使用规范

构建镜像

所有镜像需使用项目内统一的 Dockerfile 标准模板,使用多阶段构建优化体积。

docker build -t docker-repo.pleuston.org/c0726/fastapi-app:1.0.0 .

推送镜像

docker push docker-repo.pleuston.org/c0726/fastapi-app:1.0.0

拉取镜像

docker pull docker-repo.pleuston.org/c0726/fastapi-app:1.0.0

镜像推送与拉取指南

1. 配置本地 Docker 认证

登录 Harbor:

docker login docker-repo.pleuston.org

2. 推送镜像

docker tag myapp:dev docker-repo.pleuston.org/c0726/myapp:dev
docker push docker-repo.pleuston.org/c0726/myapp:dev

3. 拉取镜像

docker pull docker-repo.pleuston.org/c0726/myapp:dev

权限管理

项目角色

| 角色 | 权限描述 | | -- | | | 项目管理员 | 全部权限,含用户管理 | | 开发者 | 推送镜像、拉取镜像、创建标签等 |

注意:访客无法从公共仓库拉取镜像,只能从项目仓库拉取镜像。

申请与授权

  • 请通过管理员邮箱提交用户添加申请。

CI/CD 集成指南(Gitea Actions)

本项目使用 Gitea Actions 进行自动构建和部署,示例工作流如下:

示例 .gitea/workflows/deploy.yml

...
...
...

- name: Docker Login to Harbor
run: |
echo "${{ secrets.HARBOR_PASSWORD }}" | docker login docker-repo.pleuston.org -u ${{ secrets.HARBOR_USERNAME }} --password-stdin

- name: Build and Push Image
run: |
docker build -t docker-repo.pleuston.org/c0726/fastapi-app:latest .
docker push docker-repo.pleuston.org/c0726/fastapi-app:latest

- name: Remote Deploy
run: |
sshpass -p "${{ secrets.SSH_PASSWORD }}" ssh -o StrictHostKeyChecking=no root@server-ip
"
docker login docker-repo.pleuston.org -u PleustonDevOps -p Carvinte#13756613077 && \
docker pull docker-repo.pleuston.org/c0726/fastapi-app:latest && \
docker stop fastapi || true && \
docker rm fastapi || true && \
docker run -d --name fastapi -p 8000:8000 docker-repo.pleuston.org/c0726/fastapi-app:latest
"

密钥与认证管理

1. Harbor 认证密钥

  • 推荐使用 Gitea Secrets 配置:

    • HARBOR_USERNAME
    • HARBOR_PASSWORD

2. SSH 登录远程服务器

  • 使用 sshpass 和 Gitea Secrets 实现非交互式登录
  • 建议使用 SSH key 替代密码并加入 ~/.ssh/authorized_keys

3. Gitea Secrets 配置位置

在仓库 → Settings → Secrets 中配置:

Key用途
HARBOR_USERNAMEHarbor 登录用户名
HARBOR_PASSWORDHarbor 登录密码
SSH_PASSWORD远程服务器 root 密码

安全建议

  1. Harbor 强制使用 HTTPS。
  2. 禁止将 Harbor 密码硬编码在代码中。
  3. 镜像构建中不应包含敏感信息(如明文密码)。
  4. 所有远程部署建议使用密钥方式而非明文密码。
  5. 定期清理过期镜像与 tag。

附录

常用命令备忘

# 构建镜像
docker build -t docker-repo.pleuston.org/c0726/app:1.0.0 .

# 推送镜像
docker push docker-repo.pleuston.org/c0726/app:1.0.0

# 拉取镜像
docker pull docker-repo.pleuston.org/c0726/app:1.0.0

# 登录 Harbor
docker login docker-repo.pleuston.org

如需支持或报错反馈,请联系项目 DevOps 管理员:devops@greenshadecapital.com