docker创建私有仓库

本文介绍了如何搭建和管理Docker私有仓库,包括使用Registry创建基本的私有仓库,配置允许非HTTPS推送,镜像重命名与上传。接着详细讲解了企业级私有仓库Harbor的安装、配置和使用,包括离线安装、WebUI管理、镜像上传等,并提到了Harbor的组件与安全特性。
摘要由CSDN通过智能技术生成

docker仓库的介绍

私有仓库分为两种,一种是普通的私有仓库。另一种是UI图形界面的四库Harbor这一种的私库有利于用户的管理。

Registry仓库

第一步:拉取镜像

查看镜像版本,不会用的请看下图
[root@bogon harbor]# docker search registry
拉去镜像registry镜像
[root@bogon harbor]# docker pull registry:2

在这里插入图片描述
第二步:建立容器

命令
docker
参数
-p: 端口映射。 宿主机端口:容器暴露的端口。
-p 80 : 如果-p选项后边只写了一个端口,那么这个端口是指容器暴露的端口号随机映射到宿主机(32768开始…)
-P :后边没有接任何的端口参数。那么它会把容器暴露的端口,全部随机的映射到宿主机。
-v: 挂载目录。 宿主机的目录:容器内的目录。
–restart:指定容器停止后的重启策略
创建容器,名字叫regisrty,容器永不停止,端口映射,外连接
[root@localhost ~]# docker run -itd --name regisrty --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2

第三步:指定私有仓
在配置文件中添加自己的端口,应为Docker默认不允许非HTTPS方式推送镜像,如果没做这一步,会报错。养成一个良好的习惯,修改配置文件重启下服务。如图

[root@docker ~]# vim /usr/lib/systemd/system/docker.service
第14行添加 
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry    192.168.1.60:5000
重新加载守护进程
[root@localhost ~]# systemctl daemon-reload
重新启动docker
[root@localhost ~]# systemctl restart docker

在这里插入图片描述

第四步:镜像重命名
因为我们使用的私有镜像,在上传或下载的时候,都需要我们将镜的名称直接重命名,要注明它私有仓库的IP地址:暴露端口。切记是须,否则
将识别不到仓库而上传或下载失败。

[root@localhost ~]# docker tag registry:2 192.168.1.60:5000/registry:2

在这里插入图片描述第五步:上传镜像


[root@localhost ~]# docker push 192.168.1.60:5000/registry
The push refers to repository [192.168.1.60:5000/registry]
6da1e15d5d7f: Pushed
d385a2515a0f: Pushed
d661c8a70d1e: Pushed
查看下镜像
[root@localhost ~]# curl -XGET http://192.168.1.60:5000/v2/_catalog
{"repositories":["registry"]}
查看下镜像的详细信息
[root@localhost ~]# curl -XGET http://192.168.1.60:5000/v2/registry/tags/list
{"name":"registry","tags":["2"]}

在这里插入图片描述

harbor仓库

Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum可以提供存储chart数据的仓库【注:helm就相当于k8s的yum】。另外它还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似于私有CA中心,而Clair则是容器安全扫描工具,它通过各大厂商提供的CVE漏洞库来获取最新漏洞信息,并扫描用户上传的容器是否存在已知的漏洞信息,这两个安全功能对于企业级私有仓库来说是非常具有意义的。

Harbor安装有3种方式:

  • 在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
  • 离线安装:安装包包含部署的相关镜像,因此安装包比较大
  • OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor
    本文记录通过离线安装的方式部署。

//这里选用离线安装的方式。

1、下载一个docker-compse工具

也可以使用yum下载工具。

下载docker-compse工具
[root@localhost~]# curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
授权命令
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
查看版本号,验证是否安装成功
[root@localhost ~]# docker-compose -v
下载一些依赖包
[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

harbor离线安装

解压安装包
[root@localhost ~]# tar -zxf harbor-offline-installer-v1.7.4.tgz -C /usr/local/
修改配置文件
[root@localhost ~]# cd  /usr/local/harbor && vim harbor.cfg
hostname = 192.168.1.55				
这里我们将主机名直接改成我们的IP地址,其实也可以使用域名,如果使用域名需要在windows主机上修改hosts文件,地址为 C:\Windows\System32\drivers\etc,将域名与ip添加进去即可。
安装harbor
[root@localhost ~]# ./install.sh
启动harbor
[root@localhost ~]# docker-compose start

在这里插入图片描述

harbor使用

使用游览器登入,harbor的界面,默认用户的admin,密码时Harbor12345
在这里插入图片描述
在这里插入图片描述

dockers client的设置

更改docker.service配置文件

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry    192.168.1.60
刷新守护进程
[root@localhost ~]#systemctl daemon-reload
重启进程
[root@localhost ~]#systemctl restart docker
客户端登入
[root@localhost ~]#docker login -u admin -p Harbor12345 192.168.1.60
Login Succeeded

上传私有镜像

改名字的格式
[root@localhost ~]# docker tag registry:2 192.168.1.60/app/registry:2
                                     |           	    |		 |
                                  这是镜像               |        |
                                  					这是目录{项目} |              
                                  					             |
                                  					         这是新的镜像名称
改名字
[root@localhost ~]# docker tag registry:2 192.168.1.60/app/registry:2
上传镜像
[root@localhost ~]# docker push 192.168.1.60/app/registry:2
The push refers to repository [192.168.1.60/app/registry]
6da1e15d5d7f: Pushed
d385a2515a0f: Pushed
d661c8a70d1e: Pushed
02ada6f7a843: Pushed

注意: 客户端上传镜像时需要,修改docker.service和登入docker。docker.service中添加的IP是私有镜像的IP地址。

问题

中间安装或登入时出现密码错误的问题,这是由于网路的原因造成的,可以断开网路离线安装。这样不仅速度快,问题也少。

harbor镜像的解释

  • Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。
  • db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。
  • UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。
  • jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。
  • Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。
  • Registry:镜像仓库,负责存储镜像文件。
  • Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。

配置文件详解

## Configuration file of Harbor
//hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
hostname = 192.168.1.100

//访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http

//最大连接数
max_job_workers = 10

//是否生成证书
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA

//关于日志切割选项
log_rotate_count = 50

//关于日志切割的大小,可以是KB、MB、GB
log_rotate_size = 200M

//是否启用代理访问
http_proxy =
https_proxy =
no_proxy = 127.0.0.1,localhost,core,registry

//邮件设置,发送重置密码邮件时使用
email_identity = 
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false
email_insecure = false

//启动Harbor后,管理员admin,UI登录的密码,默认是Harbor12345
harbor_admin_password = Harbor12345

//认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth

是否开启自注册
self_registration = on

//token有效时间,默认30分钟
token_expiration = 30

//用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = everyone
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值