目录
- Harbor概述
- Harbor部署
- Harbor基本使用
- Portainer图形化管理
Harbor概述
Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的 企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访 问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
官方地址:https://goharbor.io/
组件 | 功能 |
---|---|
harbor-adminserver | 配置管理中心 |
harbor-db | Mysql数据库 |
harbor-jobservice | 负责镜像复制 |
harbor-log | 配置管理中心 |
harbor-ui | Web管理页面和API |
nginx | 前端代理,负责前端页面和镜像上传/下载转发 |
redis | 会话 |
registry | 镜像存储 |
Harbor部署
-
安装docker-compose
依次执行:curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
-
解压harbor
tar -zxvf harbor-offline-installer-v1.5.0.tgz -C ../module/
-
进入解压后harbor文件夹更新harbor.cfg
hostname=xxx.xxx.xx.xx harbor_admin_password = xxxxx
-
添加http可信用凭证
vim /etc/docker/daemon.json
{ "registry-mirrors": ["https://eosrutsk.mirror.aliyuncs.com"], #加速镜像地址 "insecure-registries":["192.168.98.90"] #可信用凭证 }
-
编译安装
./prepare ./install.sh
出现以下信息安装启动成功[Step 4]: starting Harbor ... Creating harbor-log ... done Creating harbor-db ... done Creating harbor-adminserver ... done Creating registry ... done Creating redis ... done Creating harbor-ui ... done Creating nginx ... done Creating harbor-jobservice ... done ✔ ----Harbor has been installed and started successfully.---- Now you should be able to visit the admin portal at http://192.168.98.90. For more details, please visit https://github.com/vmware/harbor .
-
访问地址:http://192.168.98.90 出现以下界面成功安装
Harbor基本使用
1.创建一个私有项目
2.添加成员
3.项目添加成员
4.将本地docker镜像打包推送到harbor
- 私有仓库需要登录docker
[root@k8s-master harbor]# docker login 192.168.98.90
Username: gcx
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@k8s-master harbor]#
2)本地镜像打标签参考harbor项目中命令
[root@k8s-master harbor]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 2622e6cca7eb 5 days ago 132MB
#本地镜像打上标签
[root@k8s-master harbor]# docker tag nginx 192.168.98.90/my-gcx/nginx:v1.0
[root@k8s-master harbor]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.98.90/my-gcx/nginx v1.0 2622e6cca7eb 5 days ago 132MB
nginx latest 2622e6cca7eb 5 days ago 132MB
#推送打标签的项目到harbor上
[root@k8s-master harbor]# docker push 192.168.98.90/my-gcx/nginx:v1.0
The push refers to repository [192.168.98.90/my-gcx/nginx]
f978b9ed3f26: Layer already exists
9040af41bb66: Layer already exists
7c7d7f446182: Layer already exists
d4cf327d8ef5: Layer already exists
13cb14c2acd3: Layer already exists
v1.0: digest: sha256:0efad4d09a419dc6d574c3c3baacb804a530acd61d5eba72cb1f14e1f5ac0c8f size: 1362
[root@k8s-master harbor]#
3)查看harbor仓库中是否存在
至此harbor基本使用完成
Portainer图形化管理
1.初始运行portainer:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
2.首次启动配置用户
3.配置完毕后,选择本地模式
4.命令能敲的图形化都有具体功能,自己进来多摸索,不在一一列举
至此,本文Harbor与Portainer使用结束!