

安装企业级docker镜像仓库Harbor
source link: https://www.wencst.com/archives/1061
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Harbor官方介绍
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
Harbor安装环境
Centos: CentOS 7.3
Docker: 18.03.1-ce
Docker-composer: 1.23.2
Harbor: harbor-offline-installer-v1.6.2.tgz
harbor 1.6.2 需要的运行环境:docker 17.03.0-ce+ and docker-compose 1.10.0+ .
Harbor安装
Harbor支持在线和离线两种安装方式,本文采用在线方式安装。在线安装安装过程中需要下载docker镜像,离线包则已经有相关镜像
离线包可以在百度云盘下载:
链接:https://pan.baidu.com/s/1hWeEu4J-o1LYFrFgWOmQww
提取码:q9q7
在线安装包可以在下面的连接下载:
链接:https://pan.baidu.com/s/1FbB-QCB63k6psOtpOkvXYw
提取码:o72z
把安装压缩包 harbor-offline-installer-v1.6.2.tgz 上传到服务器
1、解压
[root@localhost harbor]# tar xvf harbor-offline-installer-v1.6.2.tgz
2、配置
在harbor的解压目录里,有下列文件,其中 harbor.cfg是配置文件,install.sh是安装文件
drwxr-xr-x. 3 root root 23 Dec 9 22:41 common
-rw-r--r--. 1 root root 813 Nov 20 13:59 docker-compose.chartmuseum.yml
-rw-r--r--. 1 root root 863 Nov 20 13:59 docker-compose.clair.yml
-rw-r--r--. 1 root root 1258 Nov 20 13:59 docker-compose.notary.yml
-rw-r--r--. 1 root root 3675 Nov 20 13:59 docker-compose.yml
drwxr-xr-x. 3 root root 136 Nov 20 13:59 ha
-rw-r--r--. 1 root root 7913 Nov 20 13:59 harbor.cfg
-rwxr-xr-x. 1 root root 6162 Nov 20 13:59 install.sh
-rw-r--r--. 1 root root 10768 Nov 20 13:59 LICENSE
-rw-r--r--. 1 root root 482 Nov 20 13:59 NOTICE
-rw-r--r--. 1 root root 1535603 Nov 20 13:59 open_source_license
-rwxr-xr-x. 1 root root 39132 Nov 20 13:59 prepare
下面修改一些示例中使用的参数,更详细的参数请参考:https://github.com/goharbor/harbor/blob/v1.6.2/docs/installation_guide.md
vim harbor.cfg
修改配置,使用IP地址访问harbor,暴露的端口是5000
# 监听地址,不能设置为127.0.0.1或者localhost,这里设置的是docker host的ip地址
hostname = 192.168.88.30:5000
# 登录密码,默认密码:Harbor12345
harbor_admin_password = 123456
修改docker-compose.yml,映射容器中的80端口到host的5000端口
proxy:
image: goharbor/nginx-photon:v1.6.2
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx:z
networks:
- harbor
ports:
#需要改这里
- 5000:80
- 443:443
- 4443:4443
3. 安装
运行安装目录里面的 install.sh。耐心等待,如果是在线安装版本,需要下载一些docker镜像,如果已经 docker – 镜像加速器 配置了加速器,那是相当快的。
./install.sh
下载的镜像如下:
[root@localhost harbor]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
goharbor/redis-photon v1.6.2 473bfdd9d245 2 weeks ago 210MB
goharbor/registry-photon v2.6.2-v1.6.2 62c30cdb384a 2 weeks ago 196MB
goharbor/nginx-photon v1.6.2 c0602500e829 2 weeks ago 132MB
goharbor/harbor-log v1.6.2 781ee4ceb5d3 2 weeks ago 197MB
goharbor/harbor-jobservice v1.6.2 3419a2276f96 2 weeks ago 192MB
goharbor/harbor-ui v1.6.2 66268686bb96 2 weeks ago 215MB
goharbor/harbor-adminserver v1.6.2 4024440925a4 2 weeks ago 181MB
goharbor/harbor-db v1.6.2 0ed4186be0d1 2 weeks ago 219MB
启动的容器
[root@localhost harbor]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18c82d20d070 goharbor/harbor-jobservice:v1.6.2 "/harbor/start.sh" 2 minutes ago Up About a minute harbor-jobservice
1a807ff9307d goharbor/nginx-photon:v1.6.2 "nginx -g 'daemon of…" 2 minutes ago Up About a minute (health: starting) 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:5000->80/tcp nginx
83428db239b3 goharbor/harbor-ui:v1.6.2 "/harbor/start.sh" 2 minutes ago Up 23 seconds (health: starting) harbor-ui
d785d1e0b4fb goharbor/redis-photon:v1.6.2 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 6379/tcp redis
126657d6e33c goharbor/harbor-adminserver:v1.6.2 "/harbor/start.sh" 2 minutes ago Restarting (1) 3 seconds ago harbor-adminserver
1ac23c837879 goharbor/registry-photon:v2.6.2-v1.6.2 "/entrypoint.sh /etc…" 2 minutes ago Up 2 minutes (healthy) 5000/tcp registry
d080851c8190 goharbor/harbor-db:v1.6.2 "/entrypoint.sh post…" 2 minutes ago Up 2 minutes (healthy) 5432/tcp harbor-db
b47254ceba04 goharbor/harbor-log:v1.6.2 "/bin/sh -c /usr/loc…" 2 minutes ago Up 2 minutes (healthy) 127.0.0.1:1514->10514/tcp harbor-log
默认情况下,docker是不给你直接用IP地址访问HARBOR的,但是在host里面使用curl命名是可以访问的
解决这个问题的方法:
需要在docker的安全检查那里添加白名单
#vim /usr/lib/systemd/system/docker.service
#修改如下一行
ExecStart=/usr/bin/dockerd --insecure-registry=192.168.88.30:5000
用系统管理员账户登录后,可以看到有一个默认的public项目
4. 推送镜像到harbor
接下来,我们把在 docker – dockerfile构建一个简单的springboot应用镜像 文章中做的springboot-docker镜像推送到harbor中。
首先,在harbor里创建一个test-project项目
如果访问级别设为公布,所有人都可以不需要登录就可以拉取和推送镜像。
命令行登录harbor
docker login 192.168.88.30:5000
出现以下问题
Error response from daemon: Get https://192.168.88.30:5000/v2/: http: server gave HTTP response to HTTPS client
需要在docker的安全检查那里添加白名单
#vim /usr/lib/systemd/system/docker.service
#修改如下一行
ExecStart=/usr/bin/dockerd --insecure-registry=192.168.88.30:5000
重启docker
systemctl daemon-reload
systemctl restart docker.service
[root@localhost harbor]# docker login 192.168.88.30:5000
Username: admin
Password:
Login Succeeded
查看下我们现在的镜像
[root@localhost springboot-docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
springboot-docker 1.0 3be343b3b3ea About a minute ago 121MB
仓库拉取或者推送的命名格式:
${IP或者域名}/${项目}/${模块}:${tag}
原来的springboot-docker项目打标签,推送到harbor。
[root@localhost ~]# docker tag springboot-docker:1.0 192.168.88.30:5000/test-project/springboot-docker:1.0
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.88.30:5000/test-project/springboot-docker 1.0 3be343b3b3ea 10 hours ago 121MB
springboot-docker 1.0 3be343b3b3ea 10 hours ago 121MB
[root@localhost ~]# docker push 192.168.88.30:5000/test-project/springboot-docker:1.0The push refers to repository [192.168.88.30:5000/test-project/springboot-docker]
fff182a7c29a: Pushed
f7b41bda6817: Pushed
ed6f0bd39121: Pushed
0c3170905795: Pushed
df64d3292fd6: Pushed
1.0: digest: sha256:f37dc7dbb294a3e1eb7f53d8ad7616068dccf7996233bc8b72578d96aabee1fa size: 1366
推送完毕后,通过页面可以看到相应的镜像
拉取私库中的镜像:
docker pull 192.168.88.30:5000/test-project/springboot-docker:1.0
来源于网络:
https://my.oschina.net/thinwonton/blog/2986070
Recommend
-
34
Habor是由VMWare公司开源的容器镜像仓库。包括:管理用户界面,基于角色的访问控制,AD/LDAP集成以及审计日志等,足以满足基本企业需求.
-
10
Harbor 一、背景 Docker中要使用镜像,我们一般都会从本地、Docker Hub公共仓库或者其它第三方的公共仓库中下载镜像,但是出于安全和一些内外网的原因考虑,企业级上不会轻易使用。普通的Docker Registry又不满足需求,所以一般...
-
10
本文预计阅读时间 36 分钟 1,简单介绍。 Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以...
-
9
Docker 虽然提供公有镜像仓库 Docker hub,但是满足不了绝大部分企业对镜像仓库私有化部署的需求。 私有镜像仓库解决方案中,作为 CNCF 项目的 Harbor 长期处于统治地...
-
44
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)...
-
7
Harbor 安装条件 官网给出了安装需要的最低硬件和软件的条件:https://goharbor.io/docs/2.0.0/install-config/installation-prereq...
-
6
Harbor企业级私服Docker镜像仓库搭建及应用 Docker Hub作为Docker默认官方公共镜像,如果想要...
-
10
Harbor 是一个 CNCF 基金会托管的开源的可信的云原生 docker registry 项目,可以用于存储、签名、扫描镜像内...
-
11
Docker镜像仓库harbor的搭建与使用 2022-12-19 2 分钟阅读 一:我们在公司内部建立了Docker内部镜像仓库: harbor是vmware出的一个docker镜像仓库,本质是一组容器的集合体,算是一个多容器的pod. 数据卷缺省是宿...
-
6
2023-02-05 23:50阅读: 16评论: 0推荐: 0 容器镜像仓库-Harbor的安装及踩坑 ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK