0
点赞
收藏
分享

微信扫一扫

性能环境之docker操作指南7(全网最全)

zidea 2023-04-06 阅读 97

声明:原创作者独家授权,转载需要保留本公众号信息。

docker私有仓库管理系统--harbor

Harbor是Vmwar公司开源的企业级的Docker Registry管理项目,它主要提供Dcoker Registry管理UI,可基于角色访问控制, AD/LDAP 集成,日志审核等功能,完全的支持中文。

Harbor 的所有组件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。
harbor共有六个容器组成:

  • harbor_ui:harbor的核心服务。
  • harbor_log:运行着rsyslog的容器,进行日志收集。
  • harbor_mysql:由官方mysql镜像构成的数据库容器
  • nginx:使用Nginx做反向代理
  • registry:官方的Docker registry
  • harbor_jobservice:Harbor的任务管理服务。

安装compose

下载harbor安装包

登录https://github.com/vmware/harbor/releases,下载最新的harbor realease包。
本文采用offline的安装方式,下载harbor-offline-installer-v1.5.1.tgz

生成SSL证书(可选)

如果为nginx开启ssl,即需要如下操作:

$ mkdir –p /data/harbor/cert     
$ cd /data/harbor/cert

执行如下命令生成证书

$ openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout server.key -out server.crt     

输入如下信息:     
-----     
#国家简称     
Country Name (2 letter code) [XX]:cn     
#省份全称     
State or Province Name (full name) []:beijing     
#城市     
Locality Name (eg, city) [Default City]:beijing     
#组织或公司名称     
Organization Name (eg, company) [Default Company Ltd]:test     
#部门名称     
Organizational Unit Name (eg, section) []:IT     
#网站域名     
Common Name (eg, your name or your server's hostname) []: *.test.com     
#邮箱地址     
Email Address []:mail@thomore.com     
#输入密码     
Please enter the following 'extra' attributes     
to be sent with your certificate request     
A challenge password []:     
#可选的公司名称     
An optional company name []:

安装harbor

1.将harbor-offline-installer-v1.5.1.tgz上传到/data/harbor

$ tar zxvf harbor-offline-installer-v1.5.1.tgz     
$ mv harbor harbor1.5.1

$ cd /data/harbor/harbor1.5.1
2.修改harbor.cfg,如下内容,其他可以默认

hostname = 192.168.119.119     
ui_url_protocol = http   #如果选https则需要加载密钥     
ssl_cert = /data/cert/thomore.crt     
ssl_cert_key = /data/cert/thomore.key     
secretkey_path = /data/harbor/cert

3.修改docker-compose.yml,主要是自定义里面的volumes
/data/registry database config等
注意:该文件中的secretkey文件所在目录

adminserver:     
    image: vmware/harbor-adminserver:v1.5.1     
    container_name: harbor-adminserver     
    env_file:     
      - ./common/config/adminserver/env     
    restart: always     
    volumes:     
      - /data/harbor/volume/config/:/etc/adminserver/config/:z     
      - /data/harbor/volume/secretkey:/etc/adminserver/key:z     
      - /data/harbor/volume/:/data/:z

必须要和harbor.cfg文件中的相一致,否则启动报错

secretkey_path = /data/harbor/volume

4.修改默认80端口
$ vi docker-compose.yml

proxy:     
    image: vmware/nginx-photon:v1.5.1     
    container_name: nginx     
    restart: always     
    volumes:     
      - ./common/config/nginx:/etc/nginx:z     
    networks:     
      - harbor     
    ports:     
      - 1080:80     
      - 443:443     
      - 4443:4443

$ vi common/templates/registry/config.yml

auth:     
  token:     
    issuer: harbor-token-issuer     
    realm: $public_url:1080/service/token

如果出现下面的错误说明该两处没有更改一致。

Error response from daemon: Get http://test.com:1080/v2/: received unexpected HTTP status: 503 Service Unavailable

5.执行准备脚本
$ ./prepare
6.执行安装脚本
$ ./install
7.等待完成即可。

✔ ----Harbor has been installed and started successfully.----     

Now you should be able to visit the admin portal at http://192.168.119.119 .      
For more details, please visit https://github.com/vmware/harbor .

登录与配置

页面登录

登录配置的页面

性能环境之docker操作指南7(全网最全)_nginx

  • 用户:admin
  • 密码,见harbor.cfg配置文件中:
  • harboradminpassword = Harbor12345

管理员登录后,会看到如下模块:

  • 项目:新增/删除项目,查看镜像仓库,给项目添加成员、查看操作日志、复制项目等
  • 日志:仓库各个镜像create、push、pull等操作日志
  • 系统管理
  • 用户管理:新增/删除用户、设置管理员等
  • 复制管理:新增/删除从库目标、新建/删除/启停复制规则等
  • 配置管理:认证模式、复制、邮箱设置、系统设置等
  • 其他设置
  • 用户设置:修改用户名、邮箱、名称信息

  • 修改密码:修改用户密码

注意:非系统管理员用户登录,只能看到有权限的项目和日志,其他模块不可见。

新建项目

管理员登录->点击项目->点击+项目
性能环境之docker操作指南7(全网最全)_ubuntu_02

性能环境之docker操作指南7(全网最全)_ubuntu_03

设为不公开.

注意:当项目设为公开后,任何人都有此项目下镜像的读权限。命令行用户不需要“docker login”就可以拉取此项目下的镜像。

创建用户

1.管理员登录系统->点击系统管理->点击用户管理->点击+用户
2.填下如下信息,确定即可增加用户
性能环境之docker操作指南7(全网最全)_docker_04

3.分配该用户拥有刚才创建的项目dev的权限

  • 点击项目->点击dev->点击成员->点击+成员
  • 输入刚刚增加的用户dev1,并分配权限
    性能环境之docker操作指南7(全网最全)_ubuntu_05

客户端命令行登录

命令行登录:
$ docker login 192.168.119.119
会报如下错误:

Error response from daemon: Get https://192.168.119.119/v1/users/: dial tcp 192.168.119.119:443: getsockopt: connection refused

此时,需要做如下配置:
1.加入私有仓库地址 $ vi /etc/docker/daemon.json
如下内容是多个私有仓库的配置

{     
    "insecure-registries": ["192.168.119.119","test.com:1080"]     
}

2.执行如下命令,重启docker

systemctl daemon-reload && service docker restart

配置完成后就可以登录了。

3.另外,daemon.json还可以加上镜像加速地址:

{     
  "registry-mirrors": ["http://harbor.test.com"], #镜像加速地址     
  "insecure-registries": ["harbor.test.com","192.168.119.119:1080"], #非SSL源管理镜像。     
  "max-concurrent-downloads": 10     
}

push/pull

现在,我们用刚刚创建的用户dev1,push我们的镜像ubuntu到dev项目
1.使用dev1用户登录

$ docker login 192.168.119.119     
Username (admin): dev1     
Password:      
Login Succeeded

2.给已有的镜像ubuntu,重新打tag

$ docker tag ubuntu 192.168.119.119/dev/ubuntu:v1

3.push镜像

$ docker push 192.168.119.119/dev/ubuntu:v1     
The push refers to a repository [192.168.119.119/dev/ubuntu]     
49907af65b0a: Mounted from ubuntu/ubuntu      
4589f96366e6: Mounted from ubuntu/ubuntu      
b97229212d30: Mounted from ubuntu/ubuntu      
cd181336f142: Mounted from ubuntu/ubuntu      
0f5ff0cf6a1c: Mounted from ubuntu/ubuntu      
v1: digest: sha256:48c25f0391322e4d9f32c4326c1ec37edb9663382afafa3e6cb20dc2a45be01e size: 1357

4.dev1用户登录系统后即可看到自己上传的镜像

harbor镜像删除与清理

Harbor私有仓库运行一段时间后,仓库中存有大量镜像,会占用太多的存储空间。直接通过Harbor界面删除相关镜像,并不会自动删除存储中的文件和镜像。需要停止Harbor服务,执行垃圾回收命令,进行存储空间清理和回收。
1.先在Harbor UI图形界面中删除不需要的镜像
2.停止Harbor相关服务

$ cd <harbor_dir>     
$ docker-compose stop

3.使用--dry-run参数运行容器,预览运行效果,但不删除任何数据
首先查看是否存在镜像vmware/registry-photon:v2.6.2-v1.5.1,不同版本会有不同的tag,否则会重新拉取最新的镜像.

$ docker run -it --name gc --rm --volumes-from registry vmware/registry-photon:v2.6.2-v1.5.1 garbage-collect --dry-run /etc/registry/config.yml

4.不使用--dry-run参数,将删除相关的文件和镜像

$ docker run -it --name gc --rm --volumes-from registry vmware/registry-photon:v2.6.2-v1.5.1 garbage-collect /etc/registry/config.yml

5.重新启动Harbor相关服务

$ docker-compose start





举报

相关推荐

0 条评论