Docker hub 之harbor

本文详细介绍如何从零开始搭建Harbor私有Docker仓库,包括环境检查、Docker及Docker Compose安装、Harbor安装配置及测试过程。通过本教程,读者将学会在本地环境中部署并使用Harbor。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件配置官方建议

Resource		Capacity		Description
CPU	minimal 	2 CPU			4 CPU is preferred
Mem	minimal 	4GB			8GB is preferred
Disk			minimal 40GB	        160GB is preferred

Software		Version			        Description
Python			Version 2.7 or higher           Note that you may have to install Python on Linux distributions (Gentoo, Arch) that do not come with a Python interpreter installed by default
Docker engine	        version 17.03.0-ce+ or higher	For installation instructions, please refer to: https://docs.docker.com/engine/installation/
Docker Compose	        version 1.18.0 or higher	For installation instructions, please refer to: https://docs.docker.com/compose/install/
Openssl			latest is preferred		Generate certificate and keys for Harbor

检查环境

# python -V
Python 2.7.5

# python -V
Python 2.7.5

# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

$ docker version
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64
 Experimental: false

# docker-compose --version
docker-compose version 1.24.0, build 0aa59064

检查硬件配置

# lscpu | grep CPU
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                8
On-line CPU(s) list:   0-7
CPU family:            6
Model name:            Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz
CPU MHz:               2195.039
NUMA node0 CPU(s):     0-7

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   47G  8.5G   39G  18% /

# free -g
              total        used        free      shared  buff/cache   available
Mem:              7           0           3           0           3           6
Swap:             1           0           1

1、首先安装docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start


# cat /etc/docker/daemon.json 
{"registry-mirrors": ["https://fgl80ig9.mirror.aliyuncs.com","http://04be47cf.m.daocloud.io"]}

$ docker version
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64
 Experimental: false

2、安装docker-compose

下载二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

赋予程序执行权限
sudo chmod +x /usr/local/bin/docker-compose

创建软连接
sudo ln -sv /usr/local/bin/docker-compose /usr/bin/docker-compose

检查是否正常安装
# docker-compose --version
docker-compose version 1.24.0, build 0aa59064


安装bash命令补全
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.24.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

3、安装Harbor

下载harbor离线安装包
# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz

解压harbor
# tar -xf harbor-offline-installer-v1.7.5.tgz -C /usr/local/

进入harbor目录
# cd /usr/local/harbor/

编辑配置文件:
#dns解析的名称
hostname = harbor.zmjcd.cc

#使用http协议
ui_url_protocol = http

#启动几个并发进程,略小于cpu核心数
max_job_workers = 5

#是否启用证书前面谢谢选择https才会有效
customize_crt = on

#证书位置
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key

#秘钥路径
secretkey_path = /data

#做了反代才会使用
admiral_url = NA


#配置邮箱
email_server = smtp.163.com
email_server_port = 25
email_username = adm01@163.com
email_password = xxxxx
email_from = admin <zmj@zmjcd.cc>
email_ssl = false
email_insecure = false

#Harbor管理员密码
harbor_admin_password = Harbor12345

#认证方式
auth_mode = db_auth

#数据库主机.
db_host = postgresql

#数据库密码.
db_password = root123

#端口
db_port = 5432

#harbor用户名
db_user = postgres


# ./install.sh
✔ ----Harbor has been installed and started successfully.----

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

# ss -tanl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128      127.0.0.1:1514                         *:*                  
LISTEN     0      128              *:22                           *:*                  
LISTEN     0      128             :::80                          :::*                  
LISTEN     0      128             :::22                          :::*                  
LISTEN     0      128             :::443                         :::*                  
LISTEN     0      128             :::4443                        :::*

4、测试harbor

访问:
http://10.0.0.6/harbor/sign-in

admin 密码:Harbor12345

创建一个测试账号:
用户名:zmj 密码:test
目标名
myproject
目标URL
http://10.0.0.6/myproject
用户名
zmj
密码
••••••••
验证远程证书

在dcoker主机上:
编辑配置文件信任harbor服务器:
# cat /etc/docker/daemon.json 
{
"registry-mirrors": ["https://fgl80ig9.mirror.aliyuncs.com","http://04be47cf.m.daocloud.io"],
"insecure-registries": ["10.0.0.6"]
}

认证:
# docker login harbor.zmjcd.cc
Username: admin
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 tag SOURCE_IMAGE[:TAG] harbor.zmjcd.cc/testrepo/IMAGE[:TAG]
# docker tag jiazi:v1 10.0.0.6/testrepo/jiazi:v1
推送镜像到当前项目:
docker push harbor.zmjcd.cc/testrepo/IMAGE[:TAG]
docker push  10.0.0.6/testrepo/jiazi:v1

成功推送:
# docker push  harbor.zmjcd.cc/testrepo/jiazi:v1
The push refers to repository [harbor.zmjcd.cc/testrepo/jiazi]
f99a53c5b5ed: Pushed 
2bdf88b2699d: Pushed 
f1b5933fe4b5: Pushed 
v1: digest: sha256:35fb0d3269c2e3e7b26e736241ac287133674364580e33accce10b29ea23eda7 size: 946


# docker-compose start
Starting log         ... done
Starting registry    ... done
Starting registryctl ... done
Starting postgresql  ... done
Starting adminserver ... done
Starting core        ... done
Starting portal      ... done
Starting redis       ... done
Starting jobservice  ... done
Starting proxy       ... done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值