概述
- 随着Docker在2013年的诞生,由于其简单、易用、快速构建一次性应用环境等特点,容器化及相关技术快速进入了企业的各类应用场景
- 很多公共工具、第三方工具的服务厂商,都将自己的产品或工具容器化,提供基于Docker的公共镜像,给到需要的客户,像JRE、Redis、MySQL等;这些公共镜像一般都放置于Docker的官方的远程镜像仓库hub.docker.com或一些云厂商的远程镜像仓库进行托管,用于被拉取并使用
- 同时,很多运营私有业务的企业或组织,有着大量私有的、基于Docker容器化的代码及镜像,需要管理、维护并部署成应用;这些镜像,一般不能放到公共的远程镜像仓库
- 此时,企业就有私有远程镜像仓库的强烈需要
- Harbor,就能满足企业的这种需求
Harbor简介
- Harbor是一个用于存储、分发Docker镜像的企业级远程镜像仓库服务器工具
- 相比Docker官方提供的公共的远程镜像仓库和第三方云厂商的远程镜像仓库,具备更高的安全性、更高的效率,且自主可控
- 除了存储和分发镜像之外,还具有用户管理、项目管理、配置管理和日志查询、高可用部署等主要功能
安装
Cent OS 7中安装步骤如下:
-
安装Docker,具体参考Docker安装教程
-
安装Docker-compose
下载:curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
添加权限:
chmod +x /usr/local/bin/docker-compose
-
安装wget(如果已经安装,可省略此步)
yum -y install wget
-
在自定义目录下载Harbor
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-online-installer-v1.8.1.tgz
-
解压Harbor
tar xvf harbor-online-installer-v1.8.1.tgz
-
修改Harbor目录下的配置文件,主要修改host ,如
hostname: 192.168.227.6 -
安装后,首次启动Harbor,在解压Harbor的目录下,执行shell脚本文件
./install.sh
-
访问Harbor,通过http://ip在浏览器访问并进行用户、项目等管理,如http://192.168.227.6,默认用户名/密码如下
admin/Harbor12345 -
再次启动时,Harbor未启动,可在Harbor目录下,通过docker-compose启动,命令如下
docker-compose up -d
注意:这种安装方式为http方式,如果要使用https方式安装,需要使用证书,具体可参考https://goharbor.io/
使用
- Harbor远程镜像仓库服务器安装好后,所有的Docker引擎、K8S集群或是其他基于Docker的容器化工具,就可以直接使用安装的Harbor作为远程镜像仓库,进行镜像的共享、管理、应用
- 同时,还可以继续使用公共的远程镜像仓库或其他镜像仓库
在Docker引擎中使用Harbor远程镜像仓库
-
准备工作:由于使用的是非https方式的Harbor远程镜像仓库,在Docker引擎的主机上,对Docker.service要做如下配置
- 修改/usr/lib/systemd/system/docker.service服务文件,在ExecStart=/usr/bin/dockerd -H --containerd=/run/containerd/containerd.sock后添加--insecure-registry=Harbor IP,如--insecure-registry=192.168.227.6
- 重新加载服务配置并重启
systemctl daemon-reload systemctl restart docker
-
登录Harbor:使用如下命令,并按提示输入用户名和密码
docker login 192.168.227.6
如果登录成功,会提示:Login Successed.
-
给本地镜像打上标签:
- 对于通过docker build在本地已经打包好的镜像,可以使用docker tag将本地镜像打上具有Harbor远程镜像仓库前缀的标签,格式为:镜像仓库地址或IP/项目/镜像名称:版本;可使用类似如下命令:
docker tag itp/itp-backend:latest 192.168.227.6/itp/itp-backend:latest
- 此时,本地镜像仓库将会有一个名称192.168.227.6/itp/itp-backend:latest的镜像
- 对于通过docker build在本地已经打包好的镜像,可以使用docker tag将本地镜像打上具有Harbor远程镜像仓库前缀的标签,格式为:镜像仓库地址或IP/项目/镜像名称:版本;可使用类似如下命令:
-
推送到Harbor远程镜像仓库:使用如下命令,即可将具有Harbor前缀的镜像推送到Harbor远程镜像仓库:
docker push 192.168.227.6/itp/itp-backend:latest
-
从Harbor远程镜像仓库拉取镜像到本地仓库:在其他Docker引擎的主机,通过上述准备工作、登录同一个Harbor后,即可拉Harbor远程镜像仓库的镜像,并进行使用;使用如下命令
docker pull 192.168.227.6/itp/itp-backend:latest
欢迎来到testingpai.com!
注册 关于