上篇文章讲到部署k8s集群:可详见 https://mp.csdn.net/mp_blog/creation/editor/129581180
那么这次部署harbor仓库就继续再此基础上部署
-------------------
1:配置yum镜像仓库
yum-config-manager --add-repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2:下载并安装docker-compose服务
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
3:并添加执行权限
chmod +x /usr/local/bin/docker-compose
4:查看版本
docker-compose -version
5:下载harbor软件包(584M 可以先迅雷下载会比较快)
wget https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz
6:解压到指定的目录
tar xvf harbor-offline-installer-v2.5.6.tgz -C /home/ && cd /home/harbor/
7:修改harbor.yml配置文件
mv harbor.yml.tmpl harbor.yml #修改文件名
主要修改以下几个地方:
a: hostname: cjmharbor.com
b: 开启https相关,注意修改路径
certificate: /home/harbor/certs/harbor.crt #填写实际路径
private_key: /home/harbor/certs/harbor.key #填写实际路径
c: data_volume: /home/harbor/data
修改完后保存
8:mkdir /home/harbor/data(步骤7 需要)
mkdir /home/harbor/certs (步骤9 需要)
9:使用openssl创建自签证书并生成证书,并保存到 /home/harbor/certs 目录下
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /home/harbor/certs/harbor.key -x509 -out /home/harbor/certs/harbor.crt -subj /C=CN/ST=BJ/L=BJ/O=DEVOPS/CN=cjmharbor.com -days 3650
# 表达意思
req 产生证书签发申请命令
-newkey 生成新私钥
rsa:4096 生成秘钥位数
-nodes 表示私钥不加密
-sha256 使用SHA-2哈希算法
-keyout 将新创建的私钥写入的文件名
-x509 签发X.509格式证书命令。X.509是最通用的一种签名证书格式。
-out 指定要写入的输出文件名
-subj 指定用户信息
-days 有效期(3650表示十年)
10: 查看证书
ls /home/harbor/certs
生成如下两个:
harbor.crt harbor.key
11:安装并启动harbor服务
./install.sh #运行安装并启动脚本
直到 提示安装并启动成功
12:记得到主机修改域名映射,windows主机为:C:\Windows\System32\drivers\etc\hosts
linux主机为:/etc/hosts
新增一行为:192.168.72.160 cjmharbor.com
13:浏览器访问:http://cjmharbor.com 或http://192.168.72.160
备注:默认登录账号免密admin Harbor12345
想修改账号密码到如步骤7 上对harbor.yml修改
14:添加仓库地址
/etc/docker/daemon.json
{
"registry-mirrors": ["https://3wk75oh9.mirror.aliyuncs.com"],
"insecure-registries": ["http://cjmharbor.com"]
}
13:重启docker服务
systemctl daemon-reload && systemctl restart docker && systemctl status docker
15:
详细登入方式:docker login -u 用户 -p 密码 服务器IP:端口
docker login http://cjmharbor.com
输出如下:
# 默认管理员用户名:admin 密码:Harbor12345
Username: admin
Password:
16:重启harbor服务
cd /home/harbor/
docker-compose stop
systemctl stop docker
systemctl daemon-reload
systemctl start docker
docker-compose start
17:上传镜像到仓库
a:docker images #查询镜像,如nginx
b: 从新打标签生产新镜像,且格式为: harbor地址/目录/镜像名:版本,
执行push的时候会根据路径进行推送
docker tag nginx cjmharbor.com/library/nginx:v1
上述命令就是给nginx镜像重新打tag。这里要注意重命名格式:harbor地址/目录/镜像名:版本
c:推送到仓库
docker push cjmharbor.com/library/nginx:v1
18:当主机重启后,harbor就无法自动启动,那么需要再手动来启动
进入harbor安装目录
cd /home/harbor
创建并启动harbor(后面加-d 可以不用占用界面一直执行启动)
docker-compose up -d
关闭并移除harbor
docker-compose down
备注:如果只是要简单关闭和启动harbor服务,则用以下命令:
# docker-compose stop/start 便可
另:执行docker-compose ps 出现报错 ,是因为没有进入docker-compose.yaml所在目录
-------------------
如果出现80端口被其他容器服务所占用,则启动harbor时会报如下:
则需要修改docker-compose.yml配置里面的端口映射,修改为其他端口,如81端口
再次执行docker-compose up -d启动harbor便可