怎样安装企业级docker镜像仓库Harbor
这期内容当中小编将会给大家带来有关怎样安装企业级docker镜像仓库Harbor,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Harbor官方介绍
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
Harbor安装环境
Centos: CentOS 7.3Docker: 18.03.1-ceDocker-composer: 1.23.2Harbor: harbor-online-installer-v1.6.2.tgz
可以参考 docker - 在centos7和windows10安装 、 docker - 镜像加速器 、 安装 docker-compose 分别安装docker engine/docker compose
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-online-installer-v1.6.2.tgz 上传到服务器
1、解压
[root@localhost harbor]# tar xvf harbor-online-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.ymldrwxr-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# 登录密码,默认密码:Harbor12345harbor_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 imagesREPOSITORY TAG IMAGE ID CREATED SIZEgoharbor/redis-photon v1.6.2 473bfdd9d245 2 weeks ago 210MBgoharbor/registry-photon v2.6.2-v1.6.2 62c30cdb384a 2 weeks ago 196MBgoharbor/nginx-photon v1.6.2 c0602500e829 2 weeks ago 132MBgoharbor/harbor-log v1.6.2 781ee4ceb5d3 2 weeks ago 197MBgoharbor/harbor-jobservice v1.6.2 3419a2276f96 2 weeks ago 192MBgoharbor/harbor-ui v1.6.2 66268686bb96 2 weeks ago 215MBgoharbor/harbor-adminserver v1.6.2 4024440925a4 2 weeks ago 181MBgoharbor/harbor-db v1.6.2 0ed4186be0d1 2 weeks ago 219MB
启动的容器
[root@localhost harbor]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES18c82d20d070 goharbor/harbor-jobservice:v1.6.2 "/harbor/start.sh" 2 minutes ago Up About a minute harbor-jobservice1a807ff9307d 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 nginx83428db239b3 goharbor/harbor-ui:v1.6.2 "/harbor/start.sh" 2 minutes ago Up 23 seconds (health: starting) harbor-uid785d1e0b4fb goharbor/redis-photon:v1.6.2 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 6379/tcp redis126657d6e33c goharbor/harbor-adminserver:v1.6.2 "/harbor/start.sh" 2 minutes ago Restarting (1) 3 seconds ago harbor-adminserver1ac23c837879 goharbor/registry-photon:v2.6.2-v1.6.2 "/entrypoint.sh /etc…" 2 minutes ago Up 2 minutes (healthy) 5000/tcp registryd080851c8190 goharbor/harbor-db:v1.6.2 "/entrypoint.sh post…" 2 minutes ago Up 2 minutes (healthy) 5432/tcp harbor-dbb47254ceba04 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-reloadsystemctl restart docker.service
重新登录
[root@localhost harbor]# docker login 192.168.88.30:5000Username: adminPassword: Login Succeeded
查看下我们现在的镜像
[root@localhost springboot-docker]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEspringboot-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 imagesREPOSITORY TAG IMAGE ID CREATED SIZE192.168.88.30:5000/test-project/springboot-docker 1.0 3be343b3b3ea 10 hours ago 121MBspringboot-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
上述就是小编为大家分享的怎样安装企业级docker镜像仓库Harbor了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。