Docker基于Harbor创建私有仓库
Harbor介绍
不知道你是否需要一个属于自己内部团队的镜像仓库呢🤔,就像gitlab管理代码一样来管理你们团队的Docker镜像,那就看看Harbor吧~
Harbor(音:霍博尔)是一个由VMware公司开源的企业级镜像仓库(对的,就是那个做虚拟机VM的公司),用于存储和管理Docker镜像。它旨在为用户提供安全、可靠、高性能的镜像管理服务。 Harbor支持多种镜像格式,如Docker镜像、虚拟机镜像和各种二进制文件。它可以运行在任何环境中,并可以与Docker容器引擎和其他第三方工具集成使用。
Harbor主要由三个部分组成:
镜像仓库:用于存储镜像,支持多种存储后端,如文件系统、Amazon S3、Azure Blob存储等。
用户界面:用于管理镜像仓库,提供了简洁易用的Web界面,方便用户管理镜像和仓库。
管理后端:用于管理用户、角色和权限,支持LDAP和Active Directory等标准协议,方便用户在企业环境中使用。
总之,Harbor是一个强大的镜像仓库,可以帮助用户管理和保护Docker镜像,提高开发和运维效率。
安装Harbor
Harbor资源站 在安装Harbor前你需要先安装Docker和Docker Compose,我这里已v2.3.4为例
[root@localhost ~] wget https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz
[root@localhost ~] tar -zxvf ./harbor-offline-installer-v2.3.4.tgz && cd harbor
[root@localhost ~] vim ./harbor.yml
# 主要关注项
hostname: 这里是你的http访问地址,可以是公网IP或域名
http: Harbor运行端口
https: HTTPS证书的路径,如果没有可以把此项注销
harbor_admin_password: Harbor管理台的root用户密码
# 开始安装Harbor,中途可能会报错,按照提示内容修改会增加配置即可
[root@localhost ~] ./install.sh
[Step 5]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating registryctl ... done
Creating redis ... done
Creating harbor-db ... done
Creating registry ... done
Creating harbor-core ... done
Creating nginx ... done
Creating harbor-jobservice ... done
✔ ----Harbor has been installed and started successfully.----
怎么使用Harbor
完成上述安装后即可在浏览器使用ip或域名访问Harbor进入web管理台
(1):点击系统管理 -> 用户管理 -> 添加用户
(2):修改客户端配置文件
[root@localhost ~] vim /etc/docker/daemon.json
# 添加内容后重启docker
"insecure-registries": [
"仓库域名或IP加端口"
],
(3):使用docker登录仓库并尝试提交一个镜像到仓库里
[root@localhost ~] docker login 仓库域名或IP加端口
# 按照提示输入账户名和密码
[root@localhost ~] docker commit [可选参数] [容器ID] [镜像仓库域名或IP:端口]/[仓库名称]/[自定义镜像名称]:[自定义版本标识]
commit可选参数说明
-m "" # 提交说明
-a "" # 作者
# 如果没有遇到报错,此时运行docker images会看刚才自己创建的镜像已经提交到了本地
#创建一个新的TAG
[root@localhost ~] docker tag [新生成的镜像ID] [镜像仓库域名或IP:端口]/[仓库名称]/[自定义镜像名称]:[自定义版本标识]
#提交容器到镜像仓库
[root@localhost ~] docker push [镜像仓库域名或IP:端口]/[仓库名称]/[自定义镜像名称]:[自定义版本标识]
# 如果没有遇到报错,此时登录DockerHub就可以看到刚才自己推送的镜像
# 如果是公有仓库此时其他人就可以通过docker search 、docker pull [仓库名称]:[版本标识]找到你提交的版本
# 从仓库中拉取镜像
[root@localhost ~] docker pull [容器仓库域名或IP:端口][用户名]/[仓库名]:[tag编号]
其他的操作大家可以自行探索一下UI界面,操作方式和习惯与DockerHub差不多
至此,Docker全系列到这里就暂时告一段落了,细心的同学可能会发现,Docker有三个重要的概念,镜像、容器、仓库,仓库管理镜像可以用Harbor,那容器要怎么管理呢?这时候我们就需要用到Docker Swarm或者Kubernetes(k8s)了,如果想更加深入学习容器化的同学可以关注我的另外一个章节
完结,撒花🎉🎉🎉