企业DevOps之路:发布镜像到 Harbor 仓库

简介: 本篇内容记录了harbor仓库的相关操作。

1. Harbor 服务绑定 host


[root@localhost harbor]# vi /etc/hosts
[root@localhost harbor]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.8 harbor.olive.org


2. 登录 Harbor 镜像仓库


[root@localhost harbor]# docker login harbor.olive.org
Username: admin
Password:
Error response from daemon: Get "https://harbor.olive.org/v2/": dial tcp 192.168.10.8:443: connect: connection refused


出现以上拒绝连接的错误,是因为在使用 docker 的仓库时,Registry为了安全性考虑,默认是需要 https 证书支持。除了生成证书,配置https的办法之外;在实验环境中,还可以通过修改 docker 的配置文件 daemon.json 把Harbor地址加入到Docker信任列表来解决。


/etc/docker/daemon.json 是 docker 的配置文件,默认是没有的,需要手动创建,可进行如下配置:


vi /etc/docker/daemon.json


添加 insecure-registries 字段,在列表里加入自己的 ip 或者域名


{
  "insecure-registries": ["http://harbor.olive.org"]
}


修改后重启 docker


#重新获取配置
systemctl daemon-reload
#重新启动docker
systemctl restart docker


重启 docker 之后,可能会遇到 Harbo r无法正常访问的情况;这是因为 docker重启后,Harbor 相关的容器没有自动启动,只要将所有的 Harbor 容器重启即可,最好先启动 harbor-log 这个容器。


可以使用命令 docker restart containerID逐个重启,也可以使用 docker-compose 进行重新启动:


[root@localhost harbor]# cd /usr/local/harbor
[root@localhost harbor]# docker-compose stop
[root@localhost harbor]# docker-compose up -d


这个 Harbor 启动和停止操作必须在 Harbor 的安装目录下操作以上命令,否则会报找不到docker-compose.yml的错误。


再次登录 Harbor


[root@localhost harbor]# docker login harbor.olive.org
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@localhost harbor]#


3. 推送镜像到 Harbor 仓库


  • 镜像打标签


docker tag centos-jre8:v1.0 harbor.olive.org/omg/centos-jre8:v1.0


centos-jre8:v1.0是由下图的 REPOSITORY+TAG 组成;使用docker images命令查看


微信图片_20220504112457.png


  • 在 Harbor 创建项目


微信图片_20220504112502.png


  • 推送镜像


docker push harbor.olive.org/omg/centos-jre8:v1.0


没在 Harbor 创建项目,就进行镜像推送;出现以下错误:报找不到omg项目


[root@localhost harbor]# docker push harbor.olive.org/omg/centos-jre8:v1.0
The push refers to repository [harbor.olive.org/omg/centos-jre8]
6575c18211a0: Preparing
15836fdef74a: Preparing
174f56854903: Preparing
unauthorized: project omg not found: project omg not found


创建项目后,推送


[root@localhost harbor]# docker push harbor.olive.org/omg/centos-jre8:v1.0
The push refers to repository [harbor.olive.org/omg/centos-jre8]
6575c18211a0: Pushed
15836fdef74a: Pushed
174f56854903: Pushed
v1.0: digest: sha256:3cba5aaf993441fb237ab950b2d207ee624a801dd031ecb35e8f72ef03e99cb4 size: 948


微信图片_20220504112507.png


4. 从 Harbor 仓库拉取镜像


  • 先登录


docker login -u admin -p Harbor123 harbor.olive.org


  • 拉取镜像


docker pull harbor.olive.org/omg/centos-jre8:v1.0


另外拉取镜像的地址也可以在如下 Harbor 界面找到


微信图片_20220504112511.png


这里复制出来的是ip,如果使用这个拉取命令,需要修改一下/etc/docker/daemon.jsoninsecure-registries字段增加 ip。


docker pull 192.168.10.8/omg/centos-jre8@sha256:3cba5aaf993441fb237ab950b2d207ee624a801dd031ecb35e8f72ef03e99cb4


5.  登出 Harbor 镜像仓库


[root@localhost harbor]# docker logout harbor.olive.org
Removing login credentials for harbor.olive.org
相关文章
|
3月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何将个人账号下的Git仓库转移到企业账号下
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
运维 监控 Devops
DevOps文化下的企业运维转型
【8月更文挑战第22天】在数字化转型的浪潮中,DevOps不仅仅是一种技术实践,更是一种企业文化。本文将探讨如何在DevOps文化的引导下,实现企业运维的高效转型,包括理念更新、流程优化和团队协作等方面。我们将一起思考如何打破传统壁垒,构建一个更加灵活、高效和协同的运维体系,以应对不断变化的市场和技术挑战。
54 1
|
3月前
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
194 3
|
3月前
|
缓存 资源调度 Kubernetes
阿里云云效产品使用合集之如何将两个独立的代码仓库构建并部署到同一个容器内
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 JavaScript Java
阿里云云效产品使用合集之如何进行Maven私有仓库迁移
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何管理企业的组织架构
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 弹性计算 持续交付
阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
敏捷开发 监控 Java
阿里云云效产品使用合集之Codeup WebIDE环境下,如何使用通义灵码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。