接入Harbor私有仓库

打印 上一主题 下一主题

主题 788|帖子 788|积分 2364

项目组现在需要接入CI/CD,其中就包括接入Harbor,本文将记录如何在CentOS7.6机器上完成接入Harbor。
前期工作:首先需要在Harbor上开具账号,创建相应项目(当前项目为imagetest)。
设置Docker

默认开发机已完成Docker安装:
  1. # docker version
  2. Client: Docker Engine - Community
  3. Version:           20.10.16
  4. API version:       1.41
  5. Go version:        go1.17.10
  6. Git commit:        aa7e414
  7. Built:             Thu May 12 09:19:45 2022
  8. OS/Arch:           linux/amd64
  9. Context:           default
  10. Experimental:      true
  11. Server: Docker Engine - Community
  12. Engine:
  13.   Version:          20.10.16
  14.   API version:      1.41 (minimum version 1.12)
  15.   Go version:       go1.17.10
  16.   Git commit:       f756502
  17.   Built:            Thu May 12 09:18:08 2022
  18.   OS/Arch:          linux/amd64
  19.   Experimental:     false
  20. containerd:
  21.   Version:          1.6.4
  22.   GitCommit:        212e8b6fa2f44b9c21b2798135fc6fb7c53efc16
  23. runc:
  24.   Version:          1.1.1
  25.   GitCommit:        v1.1.1-0-g52de29d
  26. docker-init:
  27.   Version:          0.19.0
  28.   GitCommit:        de40ad0
复制代码
在/etc/docker/daemon.json文件中(如果没有daemon.json文件,则自行创建此文件)写入如下信息:
  1. {
  2.         "insecure-registries": ["192.168.38.91:8090"]
  3. }
复制代码
文件中的192.168.38.91:8090为Harbor的部署地址。
设置完成后,需要重启Docker,执行以下命令即可:
  1. # systemctl daemon-reload
  2. # systemctl restart docker
复制代码
登录Harbor

完成Docker设置后,需要手动执行登录命令,以便确认Docker接入Harbor。
  1. # docker login 192.168.38.91:8090
  2. Authenticating with existing credentials...
  3. WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
  4. Configure a credential helper to remove this warning. See
  5. https://docs.docker.com/engine/reference/commandline/login/#credentials-store
  6. Login Succeeded
复制代码
推送镜像

登陆完成后,即可在开发机上打包镜像并推送至Harbor。
  1. # 以下命令是Harbor推荐命令,我们可参照完成
  2. # 192.168.38.91:8090/imagetest/是镜像标记固定前缀,若未设置此前缀,镜像将会被尝试推送至docker.io
  3. # 在项目中标记镜像:
  4. docker tag SOURCE_IMAGE[:TAG] 192.168.38.91:8090/imagetest/REPOSITORY[:TAG]
  5. # 推送镜像到当前项目:
  6. docker push 192.168.38.91:8090/imagetest/REPOSITORY[:TAG]
复制代码
在示例项目(Java项目)中创建Dockerfile,具体如下所示:
  1. FROM openjdk:11.0.15-jdk
  2. VOLUME /tmp
  3. RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
  4. && echo "Asia/Shanghai" > /etc/timezone \
  5. && mkdir -p /opt/app/log
  6. ARG JAR_FILE=*.jar
  7. COPY ${JAR_FILE} /opt/app/app.jar
  8. WORKDIR /opt/app/
  9. ENTRYPOINT ["java","-Xms1g", "-Xmx1g","-verbose:gc", \
  10. "-Xlog:gc,gc+ref=debug,gc+heap=debug,gc+age=trace:file=/opt/app/log/gc_%p.log:tags,uptime,time,level", \
  11. "-Xlog:safepoint:file=/opt/app/log/safepoint_%p.log:tags,uptime,time,level", \
  12. "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/app/log/network-capability.hprof", \
  13. "-XX:ErrorFile=/opt/app/log/hs_error_pid%p.log", "-XX:-OmitStackTraceInFastThrow", "-jar","/app.jar"]
复制代码
执行以下命令完成镜像打包和推送:
  1. # 打包镜像,并添加TAG:`192.168.38.91:8090/imagetest/demo:0.1`
  2. docker build -t 192.168.38.91:8090/imagetest/demo:0.1 .
  3. # 推送镜像
  4. docker push 192.168.38.91:8090/imagetest/demo:0.1
复制代码
检查Harbor仓库,即可发现镜像完成推送。

来源:https://www.cnblogs.com/jason1990/p/16291493.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表