硬件配置官方建议
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