Docker Harbor安装配置

docker结构
Docker容器在本质上是宿主机上的一个进程。也就是常说的容器是操作系统级的虚拟化。容器与容器之间做了资源的隔离

安装docker

yum install docker-ce -y
启动docker-ce和开机自启动
systemctl start docker 启动docker
(systemctl stop docker) 停止docker
(systemctl status docker) 查看docker状态
sudo systemctl enable docker
测试docker
sudo docker run hello-world

Harbor的配置要求配置要求
内存至少4G,CPU至少2个。
查看内存
free内存
查看cpu个数

cat /proc/cpuinfo | grep "physical id"

在这里插入图片描述

安装docker compose

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,
harbor的几个组件是用docker-compose启动和管理的,所以需先安装docker-compose.

pip install docker-compose
pip install --upgrade backports.ssl_match_hostname

很多时候都是由于backports.ssl_match_hostname版本的问题,升级backports.ssl_match_hostname一般可以解决该问题。

安装Harbor

如果需要访问https,则需要创建ca证书,我这里直接使用的http.

#创建证书目录
mkdir -p /data/cert
cd /data/cert/
#创建CA根证书
openssl req  -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt -subj "/C=CN/L=beijing/O=tom/CN=harbor-registry"
#生成一个证书签名, 设置访问域名为 harbor.tom.cn
openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.tom.cn.key -out server.csr -subj "/C=CN/L=beijing/O=tom/CN=harbor.tom.cn"
#生成主机的证书
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.tom.cn.crt

下载Harbor

wget http://harbor.orientsoft.cn/harbor-v1.4.0/harbor-offline-installer-v1.4.0.tgz
tar -zxf harbor-offline-installer-v1.4.0.tgz 
cd harbor

配置Harbor.cfg

# 指定私有仓库的主机名,可以是IP地址,也可以是域名,不可以使用localhost或者127.0.0.1.服务器的话需使用私网ip.   
hostname = 10.0.40.134
# 用户访问私仓时使用的协议,默认时http,这里不改。
ui_url_protocol = http
max_job_workers = 3 
customize_crt = on
# 设置证书文件路径
ssl_cert = /data/cert/harbor.tom.cn.crt
# 设置证书密钥文件路径
ssl_cert_key = /data/cert/harbor.tom.cn.key
secretkey_path = /data
admiral_url = NA
log_rotate_count = 50
log_rotate_size = 200M
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的管理员账户密码,这个需要自己设定
harbor_admin_password = Harbor12345
auth_mode = db_auth
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid 
ldap_scope = 2 
ldap_timeout = 5
ldap_verify_cert = true
self_registration = on
token_expiration = 30
project_creation_restriction = everyone
db_host = mysql
# 指定mysql数据库管理员密码
db_password = root123
db_port = 3306
db_user = root
redis_url =
clair_db_host = postgres
clair_db_password = password
clair_db_port = 5432
clair_db_username = postgres
clair_db = postgres
uaa_endpoint = uaa.mydomain.org
uaa_clientid = id
uaa_clientsecret = secret
uaa_verify_cert = true
uaa_ca_cert = /path/to/ca.pem
registry_storage_provider_name = filesystem
registry_storage_provider_config =

安装Harbor

进入harbor目录,执行**./install.sh**

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

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

出现这个信息就可以在浏览器访问Harbor了,不过需要使用公网ip,进入Harbor的web界面。
在这里插入图片描述
如果访问失败,类似于这种报错

Error response from daemon: Get https://10.0.40.134

一般需要配置daemon.json,把目标ip设为insecure-registries.

     /etc/docker/daemon.json
     "insecure-registries" : ["10.0.40.134"]

配置文件应用内网ip,包括在shell界面也应该用内网ip.
访问web需要用公网ip.

上传镜像

这里要使用私网ip登录
在这里插入图片描述

# 拉取镜像
docker pull nginx
# 给镜像打标签,标记本地镜像,将其归入某一仓库,也就是Harbor里的路径。
docker tag nginx:latest 10.0.40.134/library/ningx:v1.0
# 把镜像push到Harbor上
docker push 10.0.40.134/library/ningx:v1.0

拉取镜像

用另一台机器从我搭建的Harbor上拉镜像,同样的,也要在/etc/docker/daemon.json配置

 "insecure-registries" : ["10.0.40.134"]
docker pull 10.0.40.134/library/ningx:v1.0

这样就能顺利拉取了。
在Harbor界面可以设置针对每个仓库,对每个用户设置权限
1项目管理者2开发者3访客

为方便访问,可以在 /etc/hosts 定义域名,例如,123.123.0.123 hello.world.com,注意同时要在/etc/docker/daemon.json上同步域名。
ps: 有时候,推拉镜像会出现一直preparing的情况,这时候可以尝试重启docker,有时会有效果。
添加链接描述看了这个,貌似harbor不支持命令行查询仓库内的镜像。

参考

docker私库Harbor部署

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值