CentOS 7.3部署Harbor镜像仓库

参谋文书档案:

CentOS 7.3配置Harbor镜像商旅

  1. harbor介绍:
  2. harbor安装&使用指引:
  3. docker-compose安装教导:
  4. docker-compose版本:
  5. harbor配置https:

一.环境

一.环境

1. os

Server:CentOS-7-x86_64-1611(CentOS
7.3)

IP:10.11.51.71

1. os

Server:CentOS-7-x86_64-1611(CentOS
7.3)

IP:10.11.51.71

2. docker

Docker:
version 1.12.6, build 78d1802

Docker-compose:version
1.16.1, build 6d1ac21

2. docker

Docker:
version 1.12.6, build 78d1802

Docker-compose:version
1.16.1, build 6d1ac21

3. harbor(截止20171026)

Harbor:
version 1.2.2

3. harbor(截止20171026)

Harbor:
version 1.2.2

二.部署harbor服务

二.部署harbor服务

1. 部署docker-compose

#docker服务已提前部署,可参考:https://docs.docker.com/engine/installation/linux/docker-ce/centos/
#如果使用curl或wget下载较慢,可以通过其他渠道提前下载后上传到服务器
[[email protected] ~]# curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#赋权
[[email protected] ~]# chmod +x /usr/local/bin/docker-compose

#验证docker-compose是否部署成功
[[email protected] ~]# docker-compose --version

图片 1

1. 部署docker-compose

#docker服务已提前部署,可参考:https://docs.docker.com/engine/installation/linux/docker-ce/centos/
#如果使用curl或wget下载较慢,可以通过其他渠道提前下载后上传到服务器
[root@harbor ~]# curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#赋权
[root@harbor ~]# chmod +x /usr/local/bin/docker-compose

#验证docker-compose是否部署成功
[root@harbor ~]# docker-compose --version

图片 2

2. 下载harbor

#这里下载的是离线安装文件,在线安装文件为" harbor-online-installer-v1.2.2.tgz"
[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget https://github.com/vmware/harbor/releases/download/v1.2.2/harbor-offline-installer-v1.2.2.tgz
[[email protected] src]# tar -zxvf harbor-offline-installer-v1.2.2.tgz

2. 下载harbor

#这里下载的是离线安装文件,在线安装文件为" harbor-online-installer-v1.2.2.tgz"
[root@harbor ~]# cd /usr/local/src/
[root@harbor src]# wget https://github.com/vmware/harbor/releases/download/v1.2.2/harbor-offline-installer-v1.2.2.tgz
[root@harbor src]# tar -zxvf harbor-offline-installer-v1.2.2.tgz

3. 配置harbor.cfg 

[[email protected] src]# cd harbor

#解压目录下的harbor.cfg文件即配置文件,详细的配置项可见参考文档:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md#configuring-harbor
[[email protected] harbor]# vim harbor.cfg
#设置访问地址,可用ip,域名,不能使用127.0.0.1或localhost
hostname = 10.11.51.71

#默认使用http协议访问UI与token/notification服务;如果采用https,需要将nginx ssl设置为on,可参考:https://github.com/vmware/harbor/blob/master/docs/configure_https.md
ui_url_protocol = http

#mysql数据库root用户默认密码root123.
db_password = root123

#image复制并发量
max_job_workers = 3 

#是否为token生成证书,默认为on
customize_crt = on

#nginx cert与key文件的路径, 只有采用https协议是才有意义 
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key

#The path of secretkey storage
secretkey_path = /data

#Admiral's url, comment this attribute, or set its value to NA when Harbor is standalone
admiral_url = NA

#未启用calir服务,但解压目录下的”./prepare”文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报”ConfigParser.NoOptionError: No option u'clair_db_password' in section: u'configuration' ”相关错误;或者在”./prepare”中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改“harbor.cfg”文件即可
clair_db_password = password

#以下配置为option配置,只在首次启动生效,可以登陆UI后修改
#email相关配置,均为默认配置
email_identity = 
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin <[email protected]>
email_ssl = false

#UI登陆默认密码
harbor_admin_password = Harbor12345

##By default the auth mode is db_auth, i.e. the credentials are stored in a local database.
#Set it to ldap_auth if you want to verify a user's credentials against an LDAP server.
#默认认证db_auth为本地认证,支持ladp认证
auth_mode = db_auth

#ladp相关设置,虽然未采用ldap认证,但解压目录下的”./prepare”文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报”ConfigParser.NoOptionError: No option u'ldap_timeout' in section: u'configuration' ”相关错误;或者在”./prepare”中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改“harbor.cfg”文件即可
ldap_url = ldaps://ldap.mydomain.com
# ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
# ldap_search_pwd = password
ldap_basedn = ou=people,dc=mydomain,dc=com
# ldap_filter = (objectClass=person)
ldap_uid = uid 
ldap_scope = 3 
ldap_timeout = 5

#默认开启自注册
self_registration = on

#token有效时间,默认30minutes
token_expiration = 30

#创建项目权限控制,默认是"everyone"(所有人),可设置为"adminonly"(管理员)
project_creation_restriction = everyone

#与远程registry通信时是否采用验证ssl
verify_remote_cert = on

3. 配置harbor.cfg 

[root@harbor src]# cd harbor

#解压目录下的harbor.cfg文件即配置文件,详细的配置项可见参考文档:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md#configuring-harbor
[root@harbor harbor]# vim harbor.cfg
#设置访问地址,可用ip,域名,不能使用127.0.0.1或localhost
hostname = 10.11.51.71

#默认使用http协议访问UI与token/notification服务;如果采用https,需要将nginx ssl设置为on,可参考:https://github.com/vmware/harbor/blob/master/docs/configure_https.md
ui_url_protocol = http

#mysql数据库root用户默认密码root123.
db_password = root123

#image复制并发量
max_job_workers = 3 

#是否为token生成证书,默认为on
customize_crt = on

#nginx cert与key文件的路径, 只有采用https协议是才有意义 
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key

#The path of secretkey storage
secretkey_path = /data

#Admiral's url, comment this attribute, or set its value to NA when Harbor is standalone
admiral_url = NA

#未启用calir服务,但解压目录下的”./prepare”文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报”ConfigParser.NoOptionError: No option u'clair_db_password' in section: u'configuration' ”相关错误;或者在”./prepare”中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改“harbor.cfg”文件即可
clair_db_password = password

#以下配置为option配置,只在首次启动生效,可以登陆UI后修改
#email相关配置,均为默认配置
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

#UI登陆默认密码
harbor_admin_password = Harbor12345

##By default the auth mode is db_auth, i.e. the credentials are stored in a local database.
#Set it to ldap_auth if you want to verify a user's credentials against an LDAP server.
#默认认证db_auth为本地认证,支持ladp认证
auth_mode = db_auth

#ladp相关设置,虽然未采用ldap认证,但解压目录下的”./prepare”文件中要检查以下相关参数配置,不能注释,否则环境准备检查不能通过,报”ConfigParser.NoOptionError: No option u'ldap_timeout' in section: u'configuration' ”相关错误;或者在”./prepare”中注释相关检查与定义,但需要注意,文件中的关联太多,推荐修改“harbor.cfg”文件即可
ldap_url = ldaps://ldap.mydomain.com
# ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
# ldap_search_pwd = password
ldap_basedn = ou=people,dc=mydomain,dc=com
# ldap_filter = (objectClass=person)
ldap_uid = uid 
ldap_scope = 3 
ldap_timeout = 5

#默认开启自注册
self_registration = on

#token有效时间,默认30minutes
token_expiration = 30

#创建项目权限控制,默认是"everyone"(所有人),可设置为"adminonly"(管理员)
project_creation_restriction = everyone

#与远程registry通信时是否采用验证ssl
verify_remote_cert = on

4. 配备后端存款和储蓄(optional)

私下认可情状下,harbor存款和储蓄images在本土文件系统,但生育处境中会有更平稳的后端存储取代当半夏件系统。

那时内需更新harbor解压目录下”common/templates/registry/config.yml”文件的”storage”字段。具体修改见参谋文书档案:

4. 安顿后端存款和储蓄(optional)

暗中同意意况下,harbor存款和储蓄images在本土文件系统,但生产条件中会有更安宁的后端存款和储蓄替代当地文件系统。

此时亟需革新harbor解压目录下”common/templates/registry/config.yml”文件的”storage”字段。具体修改见参谋文书档案:https://github.com/vmware/harbor/blob/master/docs/installation\_guide.md\#configuring-storage-backend-optional

5. 安装harbor服务

harbor服务由以下容器组件提供:

harbor-log:运行rsyslogd的日记服务,通过log-drive的格局搜罗别的容器的日记,映射在宿主机的/var/log/harbor/目录;

registry:docker官方registry,担任保存镜像;

harbor-db:harbor的数据库,保存类别的job及项目、职员权力管理;

harbor-adminserver:harbor系统管理接口,能够修改系统布局以及获得系统音讯;

harbor_ui:harbor
ui,大旨服务;

harbor_jobservice:harbor的job处理模块,重借使为着镜像客栈以前同步运用;

nginx:反向代理,负担流量转载与安全申明,对外提供的流量都以从nginx中间转播,它将流量分发到后端的ui与正在docker镜像存款和储蓄的docker
registry。 

#harbor解压目录下"install.sh"脚本会根据同目录下的"docker-compose.yml"的定义下载镜像并启动服务;
#镜像下载较耗时,可提前下载备用,以免发生部署过程中镜像不能pull的尴尬
[[email protected] harbor]# ./install.sh

图片 3

#查看镜像,另有Notary与Clair(漏洞扫描)相关的镜像,harbor集成了这两个服务,但默认不安装;如果需要安装,执行" ./install.sh --with-notary --with-calir"
[[email protected] harbor]# docker images

图片 4

#查看容器,可以看到没有Notary与Clair相关服务;也可使用"docker ps";
#"docker-compose ps"需要在"docker-compose.yml"文件所在目录执行相关操作
[[email protected] harbor]# docker-compose ps

图片 5

5. 安装harbor服务

harbor服务由以下容器组件提供:

harbor-log:运营rsyslogd的日记服务,通过log-drive的样式搜聚别的容器的日记,映射在宿主机的/var/log/harbor/目录;

registry:docker官方registry,负担保存镜像;

harbor-db:harbor的数据库,保存类别的job及项目、职员权力管理;

harbor-adminserver:harbor系统管理接口,能够修改系统陈设以及获得系统音信;

harbor_ui:harbor
ui,大旨服务;

harbor_jobservice:harbor的job管理模块,主假如为了镜像仓库从前同步使用;

nginx:反向代理,担任流量转载与钦州认证,对外提供的流量都以从nginx中间转播,它将流量分发到后端的ui与正在docker镜像存款和储蓄的docker
registry。 

#harbor解压目录下"install.sh"脚本会根据同目录下的"docker-compose.yml"的定义下载镜像并启动服务;
#镜像下载较耗时,可提前下载备用,以免发生部署过程中镜像不能pull的尴尬
[root@harbor harbor]# ./install.sh

图片 6

#查看镜像,另有Notary与Clair(漏洞扫描)相关的镜像,harbor集成了这两个服务,但默认不安装;如果需要安装,执行" ./install.sh --with-notary --with-calir"
[root@harbor harbor]# docker images

图片 7

#查看容器,可以看到没有Notary与Clair相关服务;也可使用"docker ps";
#"docker-compose ps"需要在"docker-compose.yml"文件所在目录执行相关操作
[root@harbor harbor]# docker-compose ps

图片 8

6. 访问harbor ui

浏览器访谈:

图片 9

私下认可客户名/密码:admin/Harbor12345

登录后可知左边包车型大巴模块:项目/日志/系统一管理理(含顾客管理、复制管理、配置管理);右上角账户下有功能模块:顾客设置/修改密码;

非系统管理员账号登录时,只好看见有权力的花色与日志,其他模块不可知。

图片 10

6. 访问harbor ui

浏览器访谈:http://10.11.51.71(注意iptables提前放行相关端口)。

图片 11

暗许客商名/密码:admin/Harbor12345

登录后可知左边的模块:项目/日志/系统处理(含客户管理、复制管理、配置管理);右上角账户下有效用模块:客商设置/修改密码;

非系统一管理理员账号登录时,只好看看有权力的品类与日志,其他模块不可知。

图片 12

三.简单使用

三.简单使用

1. 在web ui创立项目

web ui
homepage—>+项目,按正式填写项目名称,这里等级设置”私有”,即不勾选(勾选后会变为”公开”);如若设置为公共商旅,则全数人对此项目下的镜像具有读权限,命令行中无需进行”docker
login”即可下载镜像,镜像操作与docker hub一致。

图片 13

图片 14

1. 在web ui创立项目

web ui
homepage—>+项目,按标准填写项目名称,这里等第设置”私有”,即不勾选(勾选后会变为”公开”);要是设置为公家货仓,则全体人对此项目下的镜像具有读权限,命令行中没有要求实施”docker
login”就能够下载镜像,镜像操作与docker hub一致。

图片 15

图片 16

2. 为品种加多镜像

2. 为项目加多镜像

1)登录本地私有registry

#需要修改registry支持http登陆,默认采用https,详见最后的问题章节
[[email protected] ~]# docker login 10.11.51.71

图片 17

1)登入本地私有registry

#需要修改registry支持http登陆,默认采用https,详见最后的问题章节
[root@harbor ~]# docker login 10.11.51.71

图片 18

2)为镜像打tag

#随意选取1个本地镜像打上私有registry的tag;
#tag格式为:domain(ip)/project/image:version
[[email protected] ~]# docker tag photon:1.0 10.11.51.71/harbor_1/photon:1.0
[[email protected] ~]# docker images

图片 19

2)为镜像打tag

#随意选取1个本地镜像打上私有registry的tag;
#tag格式为:domain(ip)/project/image:version
[root@harbor ~]# docker tag photon:1.0 10.11.51.71/harbor_1/photon:1.0
[root@harbor ~]# docker images

图片 20

3)push镜像到私有registry

#随意选取1个本地镜像打上私有registry的tag
[[email protected] ~]# docker push 10.11.51.71/harbor_1/photon:1.0

图片 21

上传实现后可登入web
ui,走入相应连串查看,如下:

图片 22

3)push镜像到私有registry

#随意选取1个本地镜像打上私有registry的tag
[root@harbor ~]# docker push 10.11.51.71/harbor_1/photon:1.0

图片 23

上传达成后可登入web
ui,走入相应项目查看,如下:

图片 24

3. 加多项目成员

3. 加上项目成员

1)创设客户并分配权限

web ui
homepage—>系统管理—>顾客处理—>+顾客

图片 25

可将客户安装为大班,或开展删减操作。

图片 26

1)创制顾客并分配权限

web ui
homepage—>系统处理—>客商管理—>+顾客

图片 27

可将客商设置为总指挥,或进行删减操作。

图片 28

2)增加品种成员

web ui
homepage—>项目—>harbor_1—>成员—>+成员,填写新建的账号并给定剧中人物

图片 29

可对成员剧中人物进行更改大概去除成员。

图片 30

2)增多品种成员

web ui
homepage—>项目—>harbor_1—>成员—>+成员,填写新建的账号并给定剧中人物

图片 31

可对成员剧中人物举行改变大概去除成员。

图片 32

3)常常顾客账号进行镜像操作

#删除本地镜像
[[email protected] ~]# docker rmi 10.11.51.71/harbor_1/photon:1.0
Untagged: 10.11.51.71/harbor_1/photon:1.0
Untagged: 10.11.51.71/harbor_1/[email protected]:30daf1dc09787f9d886fb3f554237ca9ba656d84590703e700f8ab740b342693

#使用一般用户账号登陆本地私有registry
[[email protected] ~]# docker logout 10.11.51.71
Remove login credentials for 10.11.51.71
[[email protected] ~]# docker login 10.11.51.71
Username: user1
Password: 
Login Succeeded

#下载镜像
[[email protected] ~]# docker pull 10.11.51.71/harbor_1/photon:1.0
1.0: Pulling from harbor_1/photon
Digest: sha256:30daf1dc09787f9d886fb3f554237ca9ba656d84590703e700f8ab740b342693
Status: Downloaded newer image for 10.11.51.71/harbor_1/photon:1.0

图片 33

3)平日顾客账号举行镜像操作

#删除本地镜像
[root@harbor ~]# docker rmi 10.11.51.71/harbor_1/photon:1.0
Untagged: 10.11.51.71/harbor_1/photon:1.0
Untagged: 10.11.51.71/harbor_1/photon@sha256:30daf1dc09787f9d886fb3f554237ca9ba656d84590703e700f8ab740b342693

#使用一般用户账号登陆本地私有registry
[root@harbor ~]# docker logout 10.11.51.71
Remove login credentials for 10.11.51.71
[root@harbor ~]# docker login 10.11.51.71
Username: user1
Password: 
Login Succeeded

#下载镜像
[root@harbor ~]# docker pull 10.11.51.71/harbor_1/photon:1.0
1.0: Pulling from harbor_1/photon
Digest: sha256:30daf1dc09787f9d886fb3f554237ca9ba656d84590703e700f8ab740b342693
Status: Downloaded newer image for 10.11.51.71/harbor_1/photon:1.0

图片 34

4. 联合进行理并答复制(仅介绍步骤)

同步复制须求2个harbor服务,假使将10.11.51.71做主节点,则新服务器可做复制节点。

web ui
homepage—>项目—>harbor_1—>复制—>+复制法则,url是指标节点的地址,顾客名/密码使用admin账号,勾选启用则始于同步image。

图片 35

4. 一块复制(仅介绍步骤)

共同复制须求2个harbor服务,要是将10.11.51.71做主节点,则新服务器可做复制节点。

web ui
homepage—>项目—>harbor_1—>复制—>+复制准则,url是指标节点的地方,客户名/密码使用admin账号,勾选启用则始于同步image。

图片 36

5. 查看日志(项目中也可查看日志)

web ui
homepage—>日志,操作日志按期间各种记录。

图片 37

5. 翻看日志(项目中也可查阅日志)

web ui
homepage—>日志,操作日志定期间各种记录。

图片 38

四.管理harbor生命周期

四.管理harbor生命周期

1. 好端端操作

#"docker-compose"可以对harbor服务整个生命周期进行管理;
#必须在"docker-compose.yml"文件所在目录执行相关操作
[[email protected] ~]# cd /usr/local/src/harbor
[[email protected] harbor]# docker-compose stop | start | restart

1. 平时操作

#"docker-compose"可以对harbor服务整个生命周期进行管理;
#必须在"docker-compose.yml"文件所在目录执行相关操作
[root@harbor ~]# cd /usr/local/src/harbor
[root@harbor harbor]# docker-compose stop | start | restart

2. 修改harbor.cfg的操作

#停止服务
[[email protected] ~]# cd /usr/local/src/harbor
[[email protected] harbor]# docker-compose -v

#修改harbor.cfg文件
[[email protected] harbor]# vim harbor.cfg

#运行prepare脚本更新配置
[[email protected] harbor]# ./prepare

#重启服务
[[email protected] harbor]# docker-compose up -d

2. 修改harbor.cfg的操作

#停止服务
[root@harbor ~]# cd /usr/local/src/harbor
[root@harbor harbor]# docker-compose -v

#修改harbor.cfg文件
[root@harbor harbor]# vim harbor.cfg

#运行prepare脚本更新配置
[root@harbor harbor]# ./prepare

#重启服务
[root@harbor harbor]# docker-compose up -d

3. 移除harbor服务容器同不常候保留镜像数据/数据库

[[email protected] harbor]# docker-compose down -v

3. 移除harbor服务容器同时保留镜像数据/数据库

[root@harbor harbor]# docker-compose down -v

4. 移除harbor服务容器全体数额(重新布置时行使)

#持久数据,如镜像,数据库等在宿主机的/data/目录下;
#日志在宿主机的/var/log/harbor/目录下
[[email protected] harbor]# rm -r /data/database
[[email protected] harbor]# rm -r /data/registry

4. 移除harbor服务容器整体数码(重新计划时选择)

#持久数据,如镜像,数据库等在宿主机的/data/目录下;
#日志在宿主机的/var/log/harbor/目录下
[root@harbor harbor]# rm -r /data/database
[root@harbor harbor]# rm -r /data/registry

五.Harbor mirror registry

Mirror是registry的一种卓殊类型,起到近似代理服务器的缓存功效,在docker
hub与client之间做镜像的缓存。

宗旨职业规律:client
pull
1个镜像时,若镜像在mirror服务器存在,则一向从mirror服务器拉取;若荒诞不经则由mirror服务器自动代理从docker
hub(可配备)中拉取镜像,并缓存到mirror服务器中;当client再次拉取这一个镜像时,直接从mirror服务器中拉取,没有须求再度从docker
hub中拉取。

五.Harbor mirror registry

Mirror是registry的一种特有类型,起到周边代理服务器的缓存功用,在docker
hub与client之间做镜像的缓存。

基本职业原理:client
pull
1个镜像时,若镜像在mirror服务器存在,则一向从mirror服务器拉取;若荒诞不经则由mirror服务器自动代理从docker
hub(可布置)中拉取镜像,并缓存到mirror服务器中;当client重新拉取那个镜像时,直接从mirror服务器中拉取,无需再一次从docker
hub中拉取。

1. 配置mirror server

#修改在解压目录中”common/templates/registry/config.yml”,在最后追加“proxy”字段;
#在运行“./prepare”之前做追加操作
[[email protected] ~]# cd /usr/local/src/harbor
[[email protected] harbor]# vim common/config/registry/config.yml
proxy:
  remoteurl: https://registry-1.docker.io
  #如果访问私有仓库,需要带上docker hub(指定的仓库)的账号/密码
  #username: [username]
  #password: [password]

1. 配置mirror server

#修改在解压目录中”common/templates/registry/config.yml”,在最后追加“proxy”字段;
#在运行“./prepare”之前做追加操作
[root@harbor ~]# cd /usr/local/src/harbor
[root@harbor harbor]# vim common/config/registry/config.yml
proxy:
  remoteurl: https://registry-1.docker.io
  #如果访问私有仓库,需要带上docker hub(指定的仓库)的账号/密码
  #username: [username]
  #password: [password]

2. 重启harbor服务

#不执行“./prepare”
[[email protected] ~]# cd /usr/local/src/harbor
[[email protected] harbor]# docker-compose stop
[[email protected] harbor]# docker-compose rm -f
[[email protected] harbor]# docker-compose up -d

图片 39

2. 重启harbor服务

#不执行“./prepare”
[root@harbor ~]# cd /usr/local/src/harbor
[root@harbor harbor]# docker-compose stop
[root@harbor harbor]# docker-compose rm -f
[root@harbor harbor]# docker-compose up -d

图片 40

3. 改造顾客端docker运行参数

#修改docker启动文件”[service]”字段
[[email protected] ~]# vim /usr/lib/systemd/system/docker.service
[Service]
EnvironmentFile=/etc/sysconfig/docker
ExecStart=/usr/bin/dockerd $OPTIONS

#定义启动参数,添加“--registry-mirror”与“--insecure-registry”参数
[[email protected] ~]# vim /etc/sysconfig/docker
OPTIONS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --registry-mirror=http://10.11.51.71 --insecure-registry 10.11.51.71"

#重启docker服务
[[email protected] ~]# systemctl restart docker

3. 修改客商端docker运维参数

#修改docker启动文件”[service]”字段
[root@test ~]# vim /usr/lib/systemd/system/docker.service
[Service]
EnvironmentFile=/etc/sysconfig/docker
ExecStart=/usr/bin/dockerd $OPTIONS

#定义启动参数,添加“--registry-mirror”与“--insecure-registry”参数
[root@test ~]# vim /etc/sysconfig/docker
OPTIONS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --registry-mirror=http://10.11.51.71 --insecure-registry 10.11.51.71"

#重启docker服务
[root@test ~]# systemctl restart docker

4. 验证

4. 验证

1)client拉取镜像

#在client服务器拉取镜像,108Mb的nginx镜像用时36min左右;
#虽然宿主机有做加速处理,但做harbor registry的容器没有加速,所以时间较长
[[email protected] ~]# date ; docker pull nginx ; date

图片 41

#在client删除nginx镜像,再拉取1次,时间缩短到11min,证明mirror缓存生效;
#效果依然不理想,但的确是生效了
[[email protected] ~]# docker rmi nginx
[[email protected] ~]# date ; docker pull nginx ; date

图片 42 

#如下从mirror registry拉取镜像的操作会很高效,同样的nginx镜像,实测在30second左右;
#即使在没有缓存的情况下效果也不错,但此时日志中显示操作用户名不再是anonymous,而是前面已经登陆的账号user1(登陆的是私有registry);
#且下载的镜像REPOSITORY也是”10.11.51.71/library/nginx”全称的形式,而不是docker hub默认的只有镜像名称
[[email protected] ~]# docker pull 10.11.51.71/library/nginx

1)client拉取镜像

#在client服务器拉取镜像,108Mb的nginx镜像用时36min左右;
#虽然宿主机有做加速处理,但做harbor registry的容器没有加速,所以时间较长
[root@test ~]# date ; docker pull nginx ; date

图片 43

#在client删除nginx镜像,再拉取1次,时间缩短到11min,证明mirror缓存生效;
#效果依然不理想,但的确是生效了
[root@test ~]# docker rmi nginx
[root@test ~]# date ; docker pull nginx ; date

图片 44 

#如下从mirror registry拉取镜像的操作会很高效,同样的nginx镜像,实测在30second左右;
#即使在没有缓存的情况下效果也不错,但此时日志中显示操作用户名不再是anonymous,而是前面已经登陆的账号user1(登陆的是私有registry);
#且下载的镜像REPOSITORY也是”10.11.51.71/library/nginx”全称的形式,而不是docker hub默认的只有镜像名称
[root@test ~]# docker pull 10.11.51.71/library/nginx

2)查看日志

web ui
homepage—>日志,操作的是公家镜像,所以顾客为anonymous,项目是暗中认可的library。

图片 45

2)查看日志

web ui
homepage—>日志,操作的是公共镜像,所以顾客为anonymous,项目是暗许的library。

图片 46

3)查看harbor registry

#在harbor服务器查看
[[email protected] ~]# ll /data/registry/docker/registry/v2/repositories/library/

图片 47

3)查看harbor registry

#在harbor服务器查看
[root@harbor ~]# ll /data/registry/docker/registry/v2/repositories/library/

图片 48

4)查看项目

web ui
homepage—>项目—>library—>镜像货仓,操作的是集体镜像,项目是默许的library。

其它开掘在档期的顺序中查看缓存有延迟现象,即已生效的缓存不会应声在web
ui中显得。

图片 49

4)查看项目

web ui
homepage—>项目—>library—>镜像货仓,操作的是公私镜像,项目是暗中同意的library。

另外开掘在档案的次序中查阅缓存有延迟现象,即已生效的缓存不会即时在web
ui中显得。

图片 50

六.问题

六.问题

1. 地面登录registry报错

[[email protected] ~]# docker login 10.11.51.71
Username: admin
Password: 
Error response from daemon: Get https://10.11.51.71/v1/users/: dial tcp 10.11.51.71:443: getsockopt: connection refused

图片 51

案由:docker
login/pull/push等对registry的操作暗中认可启用https,但这边harbor设置的是使用http。

赶尽杀绝方案:修改docker服务运行参数,在/etc/sysconfig/docker文件中的OPTIONS中追加”–insecure-registry
10.11.51.71″
(centos7中默许未有/etc/sysconfig/docker文件,能够手工业加多,同步修改运行文件/usr/lib/systemd/system/docker.service调用此参数文件)

参谋文书档案:

  1. harbor介绍:
  2. harbor安装&使用辅导:
  3. docker-compose安装指点:

  4. docker-compose版本:

  5. harbor配置https:

7.3布局Harbor镜像货仓 一.景况 1. os
Server:CentOS-7-x86_64-1611(CentOS 7.3) IP:10.11.51.71 2. docker
Docker: version 1.12.6, build 78d1802 Docker-compose:…

1. 本土登入registry报错

[root@harbor ~]# docker login 10.11.51.71
Username: admin
Password: 
Error response from daemon: Get https://10.11.51.71/v1/users/: dial tcp 10.11.51.71:443: getsockopt: connection refused

图片 52

原因:docker
login/pull/push等对registry的操作默许启用https,但此处harbor设置的是使用http。

减轻方案:修改docker服务运营参数,在/etc/sysconfig/docker文件中的OPTIONS中加进”–insecure-registry
10.11.51.71″
(centos7中私下认可没有/etc/sysconfig/docker文件,能够手工业增多,同步修改运行文件/usr/lib/systemd/system/docker.service调用此参数文件)