家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

2019-10-17 20:15:07 39点赞 344收藏 32评论

HK君不喜欢重复造轮子,docker各种软件的安装部署随便一搜就能找到很多教程,就懒得写了。这次写一下群晖威联通NAS上的docker的独家玩法吧(之前在国内网站上似乎没有见过相关内容)。

现在NAS玩家、虚拟化玩家和垃圾佬们家里通常会有多个设备上跑着docker,比如我在软路由上用docker跑着一些服务,在威联通NAS上又用docker跑着一些下载软件。有些人可能还在N1之类设备上跑着docker服务。设备多了,管理也是一个问题。这时我们可以用一个Portainer来集中管理这些设备上的docker服务。

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

为什么要用portainer来集中管理?

1、Portainer简单说就是一个能够管理docker的docker容器。Portainer的功能比NAS系统上自带的docker管理界面要强大很多。NAS上的docker管理界面通常只能满足最基本的管理需求。

例如在NAS上的docker管理界面创建一个docker之后,很多配置就无法再次修改,又或者想要对已经部署好的docker的镜像进行升级,这些操作就需要重新创建一个docker,或者需要使用命令行。而使用Portainer,可以非常方便的对已经部署好的docker进行修改、复制,甚至只点几下鼠标,就可以对docker使用的镜像进行升级。

2、Portainer可以在一个后台集中管理多个设备上的docker服务,就不需要到各个设备的后台或者命令行去操作了。

此文主要就是讲解让Portainer通过docker API连接到群晖和威联通NAS上的docker服务来进行管理的方法。

Portainer的部署

首先当然我们需要用docker部署一个Portainer,这个Portainer可以部署在内网中的任意一个docker服务上,例如我是部署在软路由上的OMV虚拟机上的,当然你也可以部署在群晖或者威联通NAS上。

通常Portainer在命令行下的部署命令是:

docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /portainer_data:/data portainer/portainer

-p 9000:9000是指把容器的9000端口映射到主机的9000端口(或者其他端口也可以)。
-v /portainer_data:/data是将容器的/data目录映射到主机的/portainer_data目录(这个路径可以随便自定义),用于持久化保存Portainer本身的一些数据。
-v /var/run/docker.sock:/var/run/docker.sock就是将容器的/var/run/docker.sock映射到主机的/var/run/docker.sock,用于直接和主机的docker守护进程进行通信,来管理当前主机上的docker。

在OMV或者debian之类LINUX系统的docker上部署Portainer用上面这条命令就可以了。但是!在群晖或者威联通的NAS的docker管理器上,是没有办法直接映射/var/run/docker.sock的,虽然也可以用命令行运行上面那行命令来部署Portainer,但是我并不建议这么做,因为在群晖和威联通NAS上,通过映射/var/run/docker.sock来和主机的docker守护进程进行通信似乎会有一些问题,可能是和群晖与威联通NAS自带的docker管理器有冲突。

如果要在群晖或者威联通NAS上部署Portainer,推荐的方法是:创建时只需要映射9000端口和/data目录即可,不需要映射主机的/var/run/docker.sock,然后等到Portainer运行起来以后,我们再通过TCP协议连接docker API去和docker守护进程进行通信。如图设置:

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

然后启动docker,就可以用http://ip:9000来访问Portainer了。首先设置好管理员密码:

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

然后会来到连接docker终端的界面:

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

如果之前在创建这个Portainer容器的时候,映射了本地主机的/var/run/docker.sock,就可以选择Local,然后点击连接即可连上本地主机的docker服务。如果没有映射本地主机的/var/run/docker.sock,则需要选择Remote,然后设置Endpoint URL来连接。

所以下面就开始说明Portainer怎么连接到群晖和威联通的docker服务吧。

Portainer连接群晖docker服务进行管理

首先我们需要让群晖的docker服务允许通过TCP进行连接。用SSH连到群晖的命令行上,编辑/var/packages/Docker/etc/dockerd.json这个文件:

sudo vi /var/packages/Docker/etc/dockerd.json

添加此行:

"hosts" : [ "tcp://192.168.0.233:2375", "unix:///var/run/docker.sock" ],

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

其中的IP需要改成你的群晖主机的IP地址,然后用:wp保存。接下来重启群晖的docker服务:

synoservice --restart pkgctl-Docker

这时我们就可以在Portainer上通过TCP协议连接群晖的docker API了。在之前的连接docker终端的界面,Name随便填写,Endpoint URL填写群晖的ip和端口2375,TLS选择关闭,然后点击Connect按钮就连接上了。

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

进入Portainer后台就能看到群晖上的docker服务,并进行管理了:

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

如果要在已经连接到本地docker服务或者其他docker服务的Portainer上添加群晖docker服务,可以在Portainer后台菜单中选择Endpoints,然后点击Add endpoint:

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

Environment type选择Docker,和前面说的一样,设置Name和Endpoint URL,TLS选择关闭,然后点击Add endpoint按钮,就把群晖docker服务添加到了Portainer的管理列表。

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

Portainer连接威联通docker服务进行管理

威联通NAS的Container Station直接提供了远程访问和管理docker的方法,并且支持TLS,所以就算是外网访问和管理也是比较安全的。从这点也可以看出威联通在虚拟化方面做的要比群晖更加专业一些。

首先打开威联通NAS的Container Station,选择菜单的属性,然后选择Docker凭证。点击下载按钮,将证书cert.zip文件下载到电脑上并解压,然后再把cert.zip文件上传到威联通NAS的共享文件夹中。

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

用SSH连接到威联通的命令行,用cd进入保存了cert.zip证书文件的目录。用以下命令创建docker的证书文件夹:

mkdir -pv ~/.docker

解压证书文件到该文件夹:

unzip cert.zip -d ~/.docker

设置环境变量:

export DOCKER_HOST=tcp://192.168.0.112:2376 DOCKER_TLS_VERIFY=1

其中的IP需要改成你的威联通NAS的IP地址。

接下来就去Portainer去添加威联通NAS的docker服务吧。依然是在Portainer后台菜单中选择Endpoints,然后点击Add endpoint。按照以下设置:

  • Environment type选择Docker

  • Name可以随便设置

  • Endpoint URL填写威联通的ip和端口2376

  • 打开TLS

  • 上传之前解压出来的证书文件:
    TLS CA certificate上传ca.pem文件;
    TLS certificate上传cert.pem文件;
    TLS key上传key.pem 文件

最后点击Add endpoint按钮,就把威联通NAS上的docker服务添加到了Portainer的管理列表。

家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务

似乎应该有个结语

Portainer功能非常强大,基本上可以实现对docker的各种操作。用Portainer来统一管理各台设备上的docker服务,可以很大的提升便利性和实用性,强烈推荐给NAS和虚拟化玩家们。

如果觉得这篇文章有干货,欢迎看官们关注和打赏,以后会奉上更多干货文章家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务


展开 收起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

4099元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

1999元起

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

2699元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

1199元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1899元起

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

2000元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

1599元起

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

Synology 群晖 DS223j 双盘位 NAS网络存储服务器 私有云 智能相册 文件自动同步

1549元起

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

Synology 群晖 DS923+ NAS网络存储服务器 标准无硬盘

4899元起

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1699元起
32评论

  • 精彩
  • 最新
  • 群晖的docker管理方便很多啊,有必要这么搞吗?

    校验提示文案

    提交
    群晖的docker管理功能太弱了。而且这个可以在一个后台管理多个设备的docker

    校验提示文案

    提交
    我的群晖docker一直要么搜索不到注册表,要么就下载失败,求助

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 我选择kubernetes

    校验提示文案

    提交
    这么高端:)

    校验提示文案

    提交
    收起所有回复
  • 太复杂了,有点不太懂,但是,你之前的猫盘帖子超有用,感谢了!

    校验提示文案

    提交
    感谢支持~

    校验提示文案

    提交
    收起所有回复
  • 连接威联通的docker服务后可以更新镜像吗?

    校验提示文案

    提交
    可以啊,改一下容器设置就好了

    校验提示文案

    提交
    收起所有回复
  • 大神,向您请教一下,我第一次用nas,然后现在用的是453Bmini,我现在有个疑问,可能比较低级的问题,是我现在的系统盘,我是用了一个240G的SSD,然后我目前的问题是经常碰到系统盘空间不足,我看到的情况是这样的:
    存储池显示 系统保留 67.6GB
    快照 11.0<16.1)GB[这里我好像设置了10%,之前设的20%因为空间不足我给调下来了]
    厚磁盘18.5GB
    可用空间58.4GB
    <订阅63.6%)
    然后在“卷”里,我看到的是这样的:DataVol1(系统> 已用空间:13.38/17.71GB,我好像就只有这十多G的空间可以用,请问我应该怎么调整让系统盘空间变大?非常感谢。
    另外请问哪里有比较热闹的威联通论坛社群可以学习的地方帮忙推荐下,感谢!

    校验提示文案

    提交
    你这是用了厚卷?系统留给快照了吧。我一直用的静态卷

    校验提示文案

    提交
    几个NAS论坛比如隔壁网或者nasyun,威联通区其实都挺冷的

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 好像查了 QNAP 各种 E 文材料,都是简单配置 sock 映射,楼主当时用这种方式碰到什么通讯问题吗?

    校验提示文案

    提交
    威联通官方也是提供了docker API方式的。我用docker.sock套接字映射的话,出现过portainer界面打开速度非常慢的情况。

    校验提示文案

    提交
    我这几天下来,就简单设置 /var/run/docker.sock(docker-compose 里) 貌似没碰到任何问题,飞速,目前也没发现什么问题过

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 请教大佬,如果有一台qnap和synology,都装这个,是不是就可以将两台设备的存储空间和其他资源池化共享了?

    校验提示文案

    提交
    存储空间没法用这个共享吧,建议直接NFS挂载

    校验提示文案

    提交
    这玩意只是管理docker容器的

    校验提示文案

    提交
    收起所有回复
  • 这个不错,可以集中查看管理docker

    校验提示文案

    提交
  • 也许现在暂时用不上.不过多学习点新的知识也是挺好的,感谢分享.~收藏一下 [看热闹]

    校验提示文案

    提交
  • 正好双十一想弄个黑裙,先收藏了,感谢分享 [赞]

    校验提示文案

    提交
  • 看了大神的部署面板解决大问题了,感谢感谢!
    希望大神来一篇介绍如何在群晖上的Docker部署OpenWrt做旁路由吧 [高兴] [赞]

    校验提示文案

    提交
  • 按照楼主弄好了。问题是,接下来不会弄呀。想载入openwrt的docker,接交换机拨号N1玩法那种~

    校验提示文案

    提交
  • 我按这种方法在黑群上面部署完成后,还是不能直接通过portainer界面直接修改一些参数,难道只能要去群晖docker界面修改么 [喜极而泣] [喜极而泣]

    校验提示文案

    提交
  • 非常棒的分享,刚需啊,迫不及待晚上回去装一下试试

    校验提示文案

    提交
  • 安装后,如果portainer里面做个更改,会同步到群晖的设备界面吗?还是群晖就跑portainer这一个docker,其他创建管理后,在群晖的系统里面是看不到的,必须去portainer管理?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
344
扫一下,分享更方便,购买更轻松