使用Harbor管理Docker镜像
前言
根据Harbor官方描述:
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
部署
添加docker官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker
yum list docker-ce --showduplicates | sort -r yum install -y docker-ce-18.06.3.ce-3.el7
注:这里使用官方最新docker版本
安装docker-compose
yum -y install docker-compose
修改docker配置文件
/etc/docker/daemon.json
(后续会用到),将harbor的IP添加到配置内。{ "insecure-registries": ["10.0.0.34"] }
启动docker
systemctl daemon-reload systemctl restart docker.service
安装Harbor,这里使用下载离线包的方式安装,请到github下载要使用的版本。
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz
解压并修改配置,这里要从公网访问web页面,所以配置文件里的hostname里写的是harbor的外网ip。
tar xvf harbor-offline-installer-v1.7.4.tgz cd harbor vim harbor.cfg hostname = 94.xxx.xxx.xxx
执行安装脚本
./install.sh
等等完成后会启动10个容器
[root@VM_0_34_centos harbor]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 39b94959d4b6 goharbor/nginx-photon:v1.7.4 "nginx -g 'daemon of…" About an hour ago Up About an hour (healthy) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp nginx d0ed8eefcc00 goharbor/harbor-portal:v1.7.4 "nginx -g 'daemon of…" About an hour ago Up 42 minutes (healthy) 80/tcp harbor-portal c47d91868179 goharbor/harbor-jobservice:v1.7.4 "/harbor/start.sh" About an hour ago Up 42 minutes harbor-jobservice 0b639dece741 goharbor/harbor-core:v1.7.4 "/harbor/start.sh" About an hour ago Up 42 minutes (healthy) harbor-core fee9d62ab1b8 goharbor/redis-photon:v1.7.4 "docker-entrypoint.s…" About an hour ago Up About an hour 6379/tcp redis 1aaec1227c62 goharbor/harbor-adminserver:v1.7.4 "/harbor/start.sh" About an hour ago Up About an hour (healthy) harbor-adminserver 931233aa6d8d goharbor/harbor-db:v1.7.4 "/entrypoint.sh post…" About an hour ago Up About an hour (healthy) 5432/tcp harbor-db 44aa216b1876 goharbor/registry-photon:v2.6.2-v1.7.4 "/entrypoint.sh /etc…" About an hour ago Up About an hour (healthy) 5000/tcp registry 6832dff60e6d goharbor/harbor-registryctl:v1.7.4 "/harbor/start.sh" About an hour ago Up About an hour (healthy) registryctl f8d7ae097c08 goharbor/harbor-log:v1.7.4 "/bin/sh -c /usr/loc…" About an hour ago Up About an hour (healthy) 127.0.0.1:1514->10514/tcp harbor-log root@VM_0_34_centos harbor]#
此时访web,即可进入harbor,页面默认管理用户及密码:admin/Harbor12345
复制管理
这是个很棒的功能,比如公司有很多个部署都有单独的镜像仓库用harbor管理(生产环境,测试环境等),当时测试环境的镜像测试成功后可以使用此功能将镜像复制到生产环境。
复制管理里添加规则,即可
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.