linux中搭建docker私有仓库二:Harbor

上一篇中介绍了docker的公共仓库docker hub及官方的私有仓库docker registry,这一篇介绍企业级的registry服务器Harbor
Harbor提供了更好的性能和安全并且提供了web界面。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。关于harbor的实现可以参考官方文档或者这个博客

安装过程

1.下载安装包并解压

首先需要下载合适版本的包,这个可以通过在github选中版本下载

## 下载速度较慢
wget https://github.com/goharbor/harbor/releases/download/v1.9.2/harbor-offline-installer-v1.9.2.tgz
## 解压文件
tar zvxf harbor-offline-installer-v1.9.2.tgz

2.安装docker-compose

docker-compose是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。linux中安装从官网选择对应的版本进行安装即可。

## 过程比较慢,提前不用创建/usr/local/bin/docker-compose(路径不可更改)
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
## 将可执行权限用于二进制文件
chmod +x /usr/local/bin/docker-compose
## 查看是否执行成功
docker-compose --version
## 输出以下表示成功
docker-compose version 1.24.1, build 4667896b

在执行第一条时候,如果出现以下错误。

curl: (35) Peer reports incompatible or unsupported protocol version.

这是由于版本不兼容或不支持的原因,执行yum update -y nss curl libcurl后继续执行即可。

3.Harbor安装配置

进入解压后的harbor文件夹中,找到harbor.yml文件(之前的版本好像是harbor.cfg文件),修改下面内容:

## 修改为主机ip,不能是127.0.0.1或者localhost
hostname: 192.168.80.128
## 端口号 默认为80
port: 8100
## admin账号的密码
harbor_admin_password: 663821

修改完成保存后,在harbor文件夹下执行./install.sh
在这里插入图片描述
它会经历好几个步骤:加载Harbor镜像(初次安装耗时较长)、准备运行环境、通过docker-compose启动harbor。这个过程较为漫长。完成后就可以启动浏览器访问http:ip/端口,账号为admin,密码是上面你设置的那个。
在这里插入图片描述
登录后的界面
在这里插入图片描述
接下来在项目中。点击新建项目,创建一个项目
在这里插入图片描述

4.镜像下载与上传

在docker13后,register只能用https,由于我们配的都是http的,所以要先在/etc/docker/目录创建daemon.json文件(如果有,直接加入)并加入如下内容:

## 这里的ip和port需要与你刚配置的harbor.yml中一致
{ "insecure-registries":["ip:port"] }

完成后重启docker及harbor容器。

## 启动docker
systemctl restart docker
## 启动harbor
docker-compose start

上传
提交镜像,如本地有一个registry镜像,需要提交到仓库:

[root@admin harbor]# docker login 192.168.80.128:8100
Username: admin
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
## 打标签 这里注意test为你刚建的那个项目名
docker tag registry 192.168.80.128:8100/test/registry:latest
## 查看打完标签的镜像列表
docker image ls
192.168.80.128:8100/test/registry      latest    f32a97de94e1    8 months ago        25.8MB
registry                               latest    f32a97de94e1    8 months ago        25.8MB
## 提交
docker push 192.168.80.128:8100/test/registry:latest
The push refers to repository [192.168.80.128:8100/test/registry]
73d61bf022fd: Pushed 
5bbc5831d696: Pushed 
d5974ddb5a45: Pushed 
f641ef7a37ad: Pushed 
d9ff549177a9: Pushed 
latest: digest: sha256:b1165286043f2745f45ea637873d61939bff6d9a59f76539d6228abf79f87774 size: 1363

提交完成后可以在仓库中看见一条数据。
在这里插入图片描述
下载

docker pull 192.168.80.128:8100/test/registry:latest

其他命令

## 退出仓库
docker logout 192.168.80.128:8100
## 暂停harbor
docker-compose stop 
## 启动harbor
docker-compose start
## 前台运行
docker-compose up
## 后台运行
docker-compose up -d
## 停止并移除容器
docker-compose down

如果想要继续更改harbor配置,那么改完后需要重新初始化Harbor:

# 暂停Harbor实例群
docker-compose down -v 
# 生成配置文件,根据 harbor.yml 配置生成docker-compose文件
./prepare  
# 后台启动Harbor实例群
docker-compose up -d  
发布了97 篇原创文章 · 获赞 44 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/github_38924695/article/details/102985193