提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
在前面文章中使用docker安装软件,例如:MySQL、Nacos等,都是从官方的镜像仓库中拉取镜像后,然后创建并启动MySQL容器、Nacos容器等,后来又使用 docker 来制作自己的镜像,若是制作自己镜像后,也想像官方制作的MySQL镜像一样,供给别人使用,并且作为镜像的拥有者,还能对镜像进行更新迭代,别人随时想使用,直接拉取镜像,运行成容器即可。之前教程中是将微服务的每个模块制作成一个个的镜像文件,然后通过docker 运行成容器就能完成项目的部署。如果,将微服务镜像保存在某个镜像仓库中,那么,想要在多台机器上部署,只需要从镜像仓库中拉取镜像后,运行容器即可,那么我们就需要用到这么一个工具Harbor镜像仓库。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Harbor是什么?
Harbor 是一个开源的企业级容器镜像仓库,旨在提供镜像管理和分发的功能。它扩展了 Docker Registry,添加了企业级功能,如用户管理、权限控制、镜像扫描和镜像复制等。Harbor 可以用于存储和管理 Docker 镜像,支持多种认证机制,帮助企业在大规模的容器环境中实现安全、高效的镜像管理。
二、安装Harbor
安装 Harbor 之前,确保虚拟机(服务器)能正常联网,并且已经成功安装上了docker 和 docker-compose 工具
docker --version
docker-compose --version
systemctl status docker
(一)Harbor安装包下载
Harbor 官方地址:
https://github.com/goharbor/harbor/releases
下载离线安装包
(二)上传安装包并解压
在服务器上的/opt目录下新建一个install 安装包文件目录,用于存放我们所有安装文件。
解压Harbor安装包
tar -xzf harbor-offline-installer-v2.10.3.tgz
tar: tar 是一个用于处理归档文件的命令行工具,通常用于创建、查看和解压缩 .tar 文件及其变体。
-x: 这个选项告诉 tar 解压归档文件。x 代表 “extract”(提取)。
-z: 这个选项指示 tar 使用 gzip 进行解压缩。z 代表 “gzip”。
-f: 这个选项后面需要跟一个文件名,表示 tar 操作的文件。f 代表 “file”(文件)。
harbor-offline-installer-v2.10.3.tgz: 这是要解压的文件名。.tgz 是 .tar.gz 的缩写,表示这个文件是一个经过 gzip 压缩的 tar 归档文件。
(三)移动安装包
mkdir /opt/harbor
mv /opt/install/harbor* /opt/harbor
(四)修改Harbor配置文件
mv harbor.yml.tmpl harbor.yml
vim harbor.yml
修改配置文件中的主机地址以及端口号
hosename:172.16.3.172 虚拟机地址
port:85 端口号
(五)安装Harbor
./prepare
./install.sh
(六)启动Harbor
这三个命令一定是得在安装Harbor文件目录下执行,就是执行以下命令时,当前文件下有Harbor的docker-compose.yml文件
docker-compose up -d 启动
docker-compose stop 停止
docker-compose restart 重新启动
(七)访问Harbor
ip地址:端口
默认用户名和密码
admin
Harbor12345
成功登录Harbor后,点击用户头像可以修改密码
三、镜像推送仓库
(一)新建项目
项目名称 hm
(二)新建一个用户
用户名 zhangsan 密码:Harbor12345
(三)为项目授权
点进 hm 项目中,添加zhangsan 用户 并且角色为开发人员
角色 | 权限说明 |
---|---|
访客 | 对于指定项目拥有只读权限 |
开发人员 | 对于指定项目拥有读写权限 |
维护人员 | 对于指定项目拥有读写权限,创建 Webhooks |
项目管理员 | 除了读写权限,同时拥有用户管理/镜像扫描等管理权限 |
(四)为镜像打标签
docker tag cart-service:latest 172.16.3.172:85/hm/cart-service:v1
(五)登录Harbor仓库
docker login -uzhangsan -pHarbor12345 172.16.3.172:85
(六)上传镜像
docker push 172.16.3.172:85/hm/cart-service:v1
(七)下载镜像
如果是在另外机器上从代码仓库下载镜像,那么需要docker登录Harbor后使用docker pull命令下载,为了方便我就直接在,172.16.2.144机器上下载了。将刚才打标签的镜像删除,从Harbor仓库拉取镜像
docker pull 172.16.3.172:85/hm/cart-service:v1
总结
以上就是将镜像推送镜像仓库Harbor的基本流程。记得打给镜像打标签时候需要加上镜像仓库的ip地址以及端口号,否者推送不了镜像仓库,再拉取镜像时,要携带镜像ip地址和端口以及名称还有标签。