欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

起因是懒

最近在家折腾docker,需要一个私有镜像仓库harbor,通常做法是打开电脑,启动harbor,用完再关闭电脑,总觉得这些操作挺麻烦(您想骂我懒么?您骂得对.....)

群晖解决烦恼

  1. 家里有台群晖DS218+,从不关机,为全家提供稳定的图片和视频服务,之前已在上面部署了maven私服、MySQL,运行得很稳定,今天就把harbor也部署在上面吧,今后可以随时想用就用,算得上懒人救星了。
  2. 下图是DS218+刚买来的样子,两块NAS硬盘,一直在稳定服务:

  3. 下图是网购的内存条,现在一共2+8=10G内存,内存充足才是敢折腾的底气:

前文链接

之前折腾群晖的记录:

  1. 群晖DS218+部署mysql
  2. 群晖DS218+部署kafka
  3. 群晖DS218+做maven私服(nexus3)
  4. K8S使用群晖DS218+的NFS

思路

其实操作很简单:harbor的部署是基于docker-compose的,群晖已带有docker-compose了,按照官方的部署指南操作即可,以下几处是要注意的地方:

  1. 部署脚本中需要管理员权限,所以不在网页上操作了,而是SSH登录后台进行操作;
  2. 自己在家使用,就不用https了,直接用http即可;

环境信息

  1. 群晖系统:DSM 6.2.2-24922 Update 4
  2. harbor:1.10.3

允许SSH登录

先要设置允许SSH后台登录:

  1. 如下图红框的操作:

  2. 如下图,勾选启用SSH功能,端口就用22:

  3. 现在用SSH终端即可登录群晖了,我这里是在windows电脑上用Xshell6登录的,您可以选用任意SSH终端工具,账号密码就是能登录群晖的账号密码,如下图,登录后,就可以使用日常的linux命令了:

  4. 注意上图的红框,登录账号的home目录是/var/services/homes/zq2599

部署harbor

  1. 执行以下脚本,创建必要目录并且下载和解压harbor安装包:
mkdir ~/harbor-1.10.3 \
&& mkdir ~/harbor-1.10.3/log \
&& mkdir ~/harbor-1.10.3/data \
&& mkdir ~/harbor-1.10.3/data/secret \
&& cd ~/harbor-1.10.3 \
&& wget https://github.com/goharbor/harbor/releases/download/v1.10.3/harbor-online-installer-v1.10.3.tgz \
&& tar -zxvf harbor-online-installer-v1.10.3.tgz \
&& mkdir -p ~/harbor-1.10.3/harbor/common/config
  1. 打开文件~/harbor-1.10.3/harbor/harbor.yml,有以下几处需要修改;
  2. 修改hostname,如果有域名就用域名,否则改成IP地址:

  3. 选一个没有占用的端口作为http端口,这里我用的是5888

  4. 如果不打算使用https,就要注释所有https的配置:

  5. 修改存储数据的位置,注意/var/services/homes/zq2599是当前账号的home目录:

  6. 修改日志存储路径,这个文件夹之前就创建好了:

  7. 修改配置完毕,保存;
  8. 执行准备命令:
cd ~/harbor-1.10.3/harbor \
&& sudo ./prepare
  1. 开始安装:
cd ~/harbor-1.10.3/harbor \
&& sudo ./install.sh
  1. 操作成功的控制台输出如下:

浏览器登录harbor

  1. 打开浏览器,访问地址http://192.168.50.43:5888 ,账号admin,密码Harbor12345

  2. 登录成功如下图,群晖空间还是很充裕的:

使用harbor

  1. 接下来的操作是从另一台Linux电脑(下面称之为A电脑)远程推送镜像到harbor机器;
  2. 如果要从A电脑连接harbor服务器,那么要对A电脑做设置,我这里A电脑是Linux操作系统;
  3. 编辑A电脑的/etc/docker/daemon.json文件(如果不存在就新建),增加下图红框中的内容,192.168.50.43是harbor服务器的IP地址,5888是前面配置的http端口:

  4. 重启docker服务使配置生效:
systemctl daemon-reload \
&& systemctl restart docker
  1. 再次提醒:这里修改是远程连接Harbor服务的机器的配置,而不是Harbor服务器的配置;
  2. 在A电脑上,有个nginx镜像,id是2622e6cca7eb,如下图所示:

  3. 按照dockr镜像仓库规则给镜像打tag:
docker tag 2622e6cca7eb 192.168.50.43:5888/library/nginx:latest
  1. 现在是同一个ID的镜像,但是有两个tag:

  2. 登录harbor:
docker login 192.168.50.43:5888 -u admin -p Harbor12345
  1. 推送镜像到harbor:
docker push 192.168.50.43:5888/library/nginx:latest
  1. 操作成功:

  2. 推送成功后,在浏览器页面可见此镜像:

  3. 新建仓库的操作如下所示:

  4. 创建成功:

卸载harbor

  1. 如果您不需要harbor了,执行以下命令即可:
cd ~/harbor-1.10.3/harbor \
&& sudo docker-compose down
  1. 再删除整个~/harbor-1.10.3目录即可,注意所有数据都会清除掉;

至此,群晖DS218+部署和验证harbor的操作就完成了,希望能带给您一些参考;

你不孤单,欣宸原创一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 数据库+中间件系列
  6. DevOps系列

欢迎关注公众号:程序员欣宸

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...

https://github.com/zq2599/blog_demos

群晖DS218+部署Harbor(1.10.3)的更多相关文章

  1. 群晖DS218+部署GitLab

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. 群晖DS218+部署mysql

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. 群晖DS218+部署kafka

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. 群晖DS218+做maven私服(nexus3)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. K8S使用群晖DS218+的NFS

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. 群晖下 gitea+drone+harbor实现CI/CD 发布到云服务器

    常用命令 sudo -i然后输入密码登录root账户(群晖默认只能使用admin账号登陆) vim xxx编辑(编辑是进去之后按i,退出并保存是按esc,然后:wq!再回车) mkdir xx创建文件 ...

  7. 群晖-使用docker套件部署Prometheus+Grafana

    Docker 部署 Prometheus 说明: 先在群辉管理界面安装好docker套件,修改一下镜像源(更快一点) 所需容器如下 Prometheus Server(普罗米修斯监控主服务器 ) No ...

  8. Solr 11 - Solr集群模式的部署(基于Solr 4.10.4搭建SolrCloud)

    目录 1 SolrCloud结构说明 2 环境的安装 2.1 环境说明 2.2 部署并启动ZooKeeper集群 2.3 部署Solr单机服务 2.4 添加Solr的索引库 3 部署Solr集群服务( ...

  9. [原创]自动化部署K8S(v1.10.11)集群

          标准运维实现自动化部署K8S集群主要分两步,第一步是部署gse-agent,拱第二步执行部署. 第一步:部署gse-agent.如下: 第二步:部署k8s集群.主要通过作业平台分为5小步执 ...

随机推荐

  1. 怎么用Folx自动标签功能自动分类文件

    Folx标签功能可以帮助职场人士提高文件分类的效率.通过使用自动标签功能,用户可以在文件下载时,自动为相关的文件进行标签分类.接下来,小编会以创建"软件"自动标签为例,为大家演示相 ...

  2. H5系列之contenteditable

    其实这个属性很简单,既然把它放到一个单独的文章来说,他肯定有一些注意点要讲 兼容性很好,兼容所有主流浏览器. 用法很简单,只需要给你需要的标签填上即可. <div contenteditable ...

  3. js实现长按显示全部内容

    js实现文字超出省略号显示时长按显示全部 元素内容超出省略号显示时长按该元素,生成toast弹窗(id:toolkitContainer),以显示全部内容 #toolkitContainer { ma ...

  4. 【linux】系统调用版串口分析&源码实战

    目录 前言 参考 1. 实战分析 1.1 开发步骤 1.1.1 获取串口设备路径 1.1.2 打开设备文件 1.1.3 配置串口 termios 结构体 1. c_iflag 输入模式标志 2. c_ ...

  5. zk特性

    看了又忘系列: 1.zk会将全量的数据存储在内存中,以此来实现提高服务器吞吐,减少延迟的目的. 2.集群中每台机器都会在内存中维护当前的服务器状态,并且每台机器之间都相互保持着通信.只要集群中存在超过 ...

  6. 16_Android的数据存储_ SharedPreference、XML和JSON

    1. Android读写首选项 1.1 SharedPreferences SharedPreferences 是一种轻型的数据存储方式,它的本质是基于XML文件存储Key-Value键值对数据,通常 ...

  7. Qt实现客户端与服务器消息发送与文件传输

    Qt实现客户端与服务器消息发送与文件传输需要使用到 QTcpSocket:提供套接字QTcpServer:提供基于TCP的服务端,官方文档的解释如下: This class makes it poss ...

  8. python基本输入输出函数

    python程序设计中有三个重要的基本输入.输出函数,用于输入.转换和输出,分别是input(),eval(),print() 1,input()函数 """ input ...

  9. charles 常用功能(八)重定向

    1.点击鼠标右键 点击保存就保存到桌面上了 效果图 在123.txt中修改 然后另存为 点击红圈处 然后再次发送请求

  10. 第8.18节 Python类中内置析构方法__del__

    一. 引言 基本上所有支持OOP设计的语言都支持析构方法(也称析构函数),析构方法都是在对象生命周期结束时调用,一般用来实施实例相关生命周期内访问数据的扫尾工作,包括关闭文件.释放内存.输出日志.清理 ...