家庭云不一样的玩法:集中管理群晖与威联通NAS上的docker服务
HK君不喜欢重复造轮子,docker各种软件的安装部署随便一搜就能找到很多教程,就懒得写了。这次写一下群晖和威联通NAS上的docker的独家玩法吧(之前在国内网站上似乎没有见过相关内容)。
现在NAS玩家、虚拟化玩家和垃圾佬们家里通常会有多个设备上跑着docker,比如我在软路由上用docker跑着一些服务,在威联通NAS上又用docker跑着一些下载软件。有些人可能还在N1之类设备上跑着docker服务。设备多了,管理也是一个问题。这时我们可以用一个Portainer来集中管理这些设备上的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守护进程进行通信。如图设置:
然后启动docker,就可以用http://ip:9000来访问Portainer了。首先设置好管理员密码:
然后会来到连接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" ],
其中的IP需要改成你的群晖主机的IP地址,然后用:wp保存。接下来重启群晖的docker服务:
synoservice --restart pkgctl-Docker
这时我们就可以在Portainer上通过TCP协议连接群晖的docker API了。在之前的连接docker终端的界面,Name随便填写,Endpoint URL填写群晖的ip和端口2375,TLS选择关闭,然后点击Connect按钮就连接上了。
进入Portainer后台就能看到群晖上的docker服务,并进行管理了:
如果要在已经连接到本地docker服务或者其他docker服务的Portainer上添加群晖docker服务,可以在Portainer后台菜单中选择Endpoints,然后点击Add endpoint:
Environment type选择Docker,和前面说的一样,设置Name和Endpoint URL,TLS选择关闭,然后点击Add endpoint按钮,就把群晖docker服务添加到了Portainer的管理列表。
Portainer连接威联通docker服务进行管理
威联通NAS的Container Station直接提供了远程访问和管理docker的方法,并且支持TLS,所以就算是外网访问和管理也是比较安全的。从这点也可以看出威联通在虚拟化方面做的要比群晖更加专业一些。
首先打开威联通NAS的Container Station,选择菜单的属性,然后选择Docker凭证。点击下载按钮,将证书cert.zip文件下载到电脑上并解压,然后再把cert.zip文件上传到威联通NAS的共享文件夹中。
用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的管理列表。
似乎应该有个结语
Portainer功能非常强大,基本上可以实现对docker的各种操作。用Portainer来统一管理各台设备上的docker服务,可以很大的提升便利性和实用性,强烈推荐给NAS和虚拟化玩家们。
如果觉得这篇文章有干货,欢迎看官们关注和打赏,以后会奉上更多干货文章













左楠风
校验提示文案
fevenor
校验提示文案
凤舞夜月
校验提示文案
byebuy
校验提示文案
badbuild
存储池显示 系统保留 67.6GB
快照 11.0<16.1)GB[这里我好像设置了10%,之前设的20%因为空间不足我给调下来了]
厚磁盘18.5GB
可用空间58.4GB
<订阅63.6%)
然后在“卷”里,我看到的是这样的:DataVol1(系统> 已用空间:13.38/17.71GB,我好像就只有这十多G的空间可以用,请问我应该怎么调整让系统盘空间变大?非常感谢。
另外请问哪里有比较热闹的威联通论坛社群可以学习的地方帮忙推荐下,感谢!
校验提示文案
wudm32
校验提示文案
buybye
校验提示文案
叫兽_sk
校验提示文案
likecho
校验提示文案
Mr姚某某
校验提示文案
Gaolei
希望大神来一篇介绍如何在群晖上的Docker部署OpenWrt做旁路由吧
校验提示文案
Geralt13775
校验提示文案
我就是cy
校验提示文案
wudm32
校验提示文案
flyxj
校验提示文案
buybye
校验提示文案
flyxj
校验提示文案
wudm32
校验提示文案
wudm32
校验提示文案
我就是cy
校验提示文案
Geralt13775
校验提示文案
Gaolei
希望大神来一篇介绍如何在群晖上的Docker部署OpenWrt做旁路由吧
校验提示文案
badbuild
存储池显示 系统保留 67.6GB
快照 11.0<16.1)GB[这里我好像设置了10%,之前设的20%因为空间不足我给调下来了]
厚磁盘18.5GB
可用空间58.4GB
<订阅63.6%)
然后在“卷”里,我看到的是这样的:DataVol1(系统> 已用空间:13.38/17.71GB,我好像就只有这十多G的空间可以用,请问我应该怎么调整让系统盘空间变大?非常感谢。
另外请问哪里有比较热闹的威联通论坛社群可以学习的地方帮忙推荐下,感谢!
校验提示文案
byebuy
校验提示文案
Mr姚某某
校验提示文案
likecho
校验提示文案
叫兽_sk
校验提示文案
凤舞夜月
校验提示文案
fevenor
校验提示文案
左楠风
校验提示文案