使用 docker-compose 部署 harbor

使用Bitnami镜像

  • 使用Bitnami的原因:

    • Bitnami密切跟踪上游源更改,能够及时发布新镜像的版本,可以尽快获得最新的错误修复和功能。
    • Bitnami在容器、虚拟机以及云镜像中使用相同的组件和配置方法,可根据项目需求轻松切换格式。
    • Bitnami所有组件使用的镜像都基于minideb(基于Debain镜像的极简镜像),它提供了小型的基础容器镜像和成熟领先的Linux发行版。

安装部署harbor

  • 下载docker-compose文件以及harbor各组件的配置文件:

    1
    2
    curl -LO https://raw.githubusercontent.com/bitnami/containers/main/bitnami/harbor-portal/docker-compose.yml
    curl -L https://github.com/bitnami/containers/archive/main.tar.gz | tar xz --strip=2 containers-main/bitnami/harbor-portal && cp -RL harbor-portal/config . && rm -rf harbor-portal
  • 运行harbor各组件:

    1
    docker-compose up -d

  • harbor的常规使用:

    • 登录harbor,如http://159.75.138.212,账号为admin,密码为bitnami

      访问地址由组件nginx服务决定,默认为80端口;账号密码在docker-composecore service配置中设置:

    • 创建项目,为镜像提供仓库项目上下文:

    • 客户端推送镜像:

      1
      2
      3
      4
      ## 为目标镜像设置标签
      docker tag ${image_id} ${harbor_addr}/${project_name}/${image_name}:${tag_name}
      ## 推送镜像
      docker push ${harbor_addr}/${project_name}/${image_name}:${tag_name}
      1
      2
      3
      4
      5

      * 客户端拉取镜像:

      ```bash
      docker pull ${harbor_addr}/${project_name}/${image_name}:${tag_name}

注意事项

  • 客户端首次推送或拉取镜像,需要进行登录操作:

    1
    docker login ${harbor_addr} -u admin -p bitnami

    若出现如下异常,则需设置http访问方式,在/etc/docker/daemon.json添加不安全访问方式后重启docker

    1
    Error response from daemon: Get "https://159.75.138.212:80/v2/": http: server gave HTTP response to HTTPS client
    1
    2
    3
    4
    5
    6
    ## /etc/docker/daemon.json
    {
    "insecure-registries": ["159.75.138.212:80"]
    }
    ## restart docker
    systemctl daemon-reload && systemctl restart docker

    若再次登录出现如下异常,需要修改/etc/hosts,将域名访问设置为ip端口访问:

    1
    Error response from daemon: Get "http://159.75.138.212/v2/": Get "http://reg.mydomain.com/service/token?account=admin&client_id=docker&offline_token=true&service=harbor-registry": dial tcp: lookup reg.mydomain.com on 183.60.83.19:53: no such host
    1
    2
    ## /etc/hosts
    159.75.138.212 reg.mydomain.com

参考文献