容器技术-部署Harbor镜像仓库

一、下载安装

1 首先保证有 docker-compose

安装compose

# curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# chmod +x /usr/local/bin/docker-compose

官方地址

容器技术-部署Harbor镜像仓库_第1张图片

下载离线安装包:


wget  https://github.com/goharbor/harbor/releases/download/v2.1.3/harbor-offline-installer-v2.1.3.tgz

解压

tar -xf harbor-offline-installer-v2.1.3.tgz

配置 harbor 服务的主机名

在这里插入图片描述

cd harbor

mv harbor.yml.tmpl  harbor.yml

修改 harbor.yml 文件中的 hostname 的值为 自己宿主机的主机名或者 IP

www.sharkyun.com 为我自己的宿主机的主机名,你需要按照自己宿主机的情况修改一下

hosname = www.sharkyun.com

关闭 https

还是在 harbor.yml 文件中,注释掉如下几行

#https:
 # port: 443
 # certificate: /your/certificate/path
 # private_key: /your/private/key/path

执行 install.sh 脚本

容器技术-部署Harbor镜像仓库_第2张图片

假如出现端口冲突的错误,修改 harbor.yml 文件中的如下内容

http:
  port: 宿主机的端口, 此端口将会映射到容器内的 8080 端口

在这里插入图片描述

加上你采用了非 80 端口,比如上图一样
需要修改 harbor.yml 文件中的如下内容

external_url: http://www.sharkyun.com:8017

这个表示当你使用的额外的代理时候,就需要打开此选项,并且设置为正确的 url 和端口号.

成功后应该下面的样子

容器技术-部署Harbor镜像仓库_第3张图片

浏览器访问测试:http://www.sharkyun.com
或者 http://www.sharkyun.com:宿主机端口

容器技术-部署Harbor镜像仓库_第4张图片
容器技术-部署Harbor镜像仓库_第5张图片

创建仓库

容器技术-部署Harbor镜像仓库_第6张图片
容器技术-部署Harbor镜像仓库_第7张图片
容器技术-部署Harbor镜像仓库_第8张图片

创建账户
容器技术-部署Harbor镜像仓库_第9张图片
容器技术-部署Harbor镜像仓库_第10张图片

容器技术-部署Harbor镜像仓库_第11张图片
给新用户授权为管理员
容器技术-部署Harbor镜像仓库_第12张图片

2、测试Harbor

上传测试

[[email protected] ~]# vim /etc/docker/daemon.json
 {
      "insecure-registries":["172.21.39.43:80"] }
 
[root@jenkins ~]# docker login 172.21.39.43:80
    Username: wing
    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
    # docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              be1f31be9a87        13 days ago         109MB
    
    # docker image tag nginx 172.21.39.43:80/jenkins/nginx:v0
    # docker push 172.21.39.43:80/jenkins/nginx:v0
    The push refers to repository [harbor.io/library/nginx]
    92b86b4e7957: Pushed
    94ad191a291b: Pushed
    8b15606a9e3e: Pushed
    latest: digest: sha256:204a9a8e65061b10b92ad361dd6f406248404fe60efd5d6a8f2595f18bb37aad size: 948

在web界面中查看镜像是否被上传到仓库中

【扩展】重置Harbor登陆密码

harbor现使用postgresql 数据库。不再支持mysql

注:
    卸载重新重新安装也不可以,原因是没有删除harbor的数据,harbor数据在/data/目录下边,如果真要重新安装需要将这个也删除,备份或者迁移,请使用这个目录的数据。

harbor版本为:1.8.0
官方的安装包为: harbor-offline-installer-v1.8.0.tgz

具体步骤:
1、进入[harbor-db]容器内部
     # docker exec -it harbor-db /bin/bash

2、进入postgresql命令行,
     psql -h postgresql -d postgres -U postgres  #这要输入默认密码:root123 。
     psql -U postgres -d postgres -h 127.0.0.1 -p 5432  #或者用这个可以不输入密码。

3、切换到harbor所在的数据库
     # \c registry

4、查看harbor_user表
     # select * from harbor_user;

5、例如修改admin的密码,修改为初始化密码Harbor12345 ,修改好了之后再可以从web ui上再改一次。
     # update harbor_user set password='a71a7d0df981a61cbb53a97ed8d78f3e', salt='ah3fdh5b7yxepalg9z45bu8zb36sszmr'  where username='admin';

6、退出 \q 退出postgresql,exit退出容器。
     # \q 
     # exit 

完成后通过WEB UI,就可以使用admin 、Harbor12345 这个密码登录了,记得修改这个默认密码哦,避免安全问题。

有更加狠点的招数,将admin账户改成别的名字,减少被攻击面:
     # update harbor_user set username='wing' where user_id=1;              #更改admin用户名为wing

容器技术-部署Harbor镜像仓库_第13张图片

你可能感兴趣的:(docker)