1. 从零开始:在DS918上安装Docker套件
如果你刚拿到一台群晖DS918,或者刚从DSM6.x升级到DSM7.2,想玩转Docker,第一步肯定是安装。但DSM7.2和以前版本有个很大的不同,你得先知道:那个熟悉的“Docker”图标和名字已经变了。现在在套件中心里,你找不到一个叫“Docker”的应用,取而代之的是一个叫做 Container Manager 的套件。别怀疑,就是它,这就是DSM7.2及以后版本中Docker的官方“马甲”。
我刚开始用的时候也迷糊了一下,心想是不是群晖把Docker给砍了。后来一查才知道,这是群晖为了统一管理和增强容器功能做的品牌更新,内核还是那个我们熟悉的Docker。所以,安装步骤其实很简单:打开你的DSM桌面,点击左上角的“主菜单”,找到“套件中心”。在套件中心的“所有套件”列表里,直接搜索“Container Manager”,或者你也可以在“类别”里找到“实用工具”分类,它通常就在那里。点击“安装”按钮,系统会自动下载并安装。这个过程是全自动的,你只需要耐心等待几分钟。
安装完成后,你会在桌面上看到一个集装箱轮船图标的套件,名字就是Container Manager。点开它,熟悉的容器、镜像、注册表、资源监控界面就出来了。这里有个小细节,因为DSM7.2对权限管理更加严格,默认情况下,只有管理员用户才能完整地使用Container Manager的所有功能。如果你用普通用户账号登录,可能会发现很多按钮是灰的,或者根本看不到Docker套件。所以,初期配置建议直接用admin或者你设置的管理员账号来操作。
2. 权限配置:让普通用户也能玩转Docker
只用管理员账号操作Docker显然不方便,也不安全。我们更希望的是,让特定的普通用户也能管理自己的容器。这就涉及到DSM7.2下Docker权限的核心设置——用户群组。群晖通过Linux内核的用户组机制来管控Docker的访问权限,这个思路其实很清晰,但操作路径和DSM6有些区别。
首先,你需要创建一个专门的用户组。打开“控制面板”,进入“用户与群组”,切换到“群组”标签页。点击“新增”,我们来创建一个新群组,名字可以就叫“docker”,方便识别。创建好后,先别急着关窗口,关键的一步来了:你需要给这个“docker”群组分配合适的共享文件夹权限。因为Docker容器运行时会读写数据卷,这些数据卷通常映射到NAS的某个共享文件夹里。比如,你打算把所有的Docker应用数据都放在/docker或/appdata这样的文件夹里,那你就在权限设置里,找到对应的共享文件夹,勾选上这个“docker”群组的“可读写”权限。我个人的习惯是单独创建一个叫“docker”的共享文件夹,把所有容器数据都扔里面,权限管理起来一目了然。
接下来,把需要操作Docker的用户加入到这个群组。还是在“用户与群组”里,点击“用户”标签页,双击你要设置的用户(比如你常用的“tom”这个账号)。在弹出的窗口中,切换到“群组成员”选项,在“隶属于”的列表里,勾选上刚才创建的“docker”群组。这样,用户“tom”就具备了docker群组的权限。但到这里还没完,因为权限的生效可能需要一点“催化剂”。
2.1 SSH验证与权限生效
添加用户到docker组后,如果你立刻用这个用户去图形界面操作Container Manager,可能还是会提示权限不足。这是因为用户会话需要刷新组信息。最直接有效的办法是:让该用户重新登录一次DSM系统。注销当前账号,再用“tom”登录,通常就能解决问题。
另一个更技术流、也更彻底的方法是使用SSH。用管理员账号开启DSM的SSH功能(控制面板 -> 终端机和SNMP -> 启用SSH服务),然后用终端软件(比如Windows下的PuTTY,Mac下的终端)连接你的NAS。用你刚添加到docker组的用户(如“tom”)登录SSH。登录后,你可以运行几个命令来验证权限是否生效:
# 查看当前用户所在的群组
groups
# 在返回的信息里,你应该能看到“docker”这个群组名。
# 然后,尝试运行一个最简单的docker命令,不需要sudo
docker ps
# 如果正常返回容器列表(哪怕是空的),或者没有出现“permission denied”错误,只是提示“Cannot connect to the Docker daemon...”,那说明用户组权限已经生效了。那个连接错误是因为Docker服务本身没在运行,或者你需要指定socket路径,这是另一个问题。
有时候,即使groups


1万+

被折叠的 条评论
为什么被折叠?



