在使用群晖的命令行进行管理的时候,执行docker指令需要root账户或者账户具有sudo权限。如果希望非root账户也能直接执行docker指令,可以通过更改docker.sock的群组来实现。
方法一:将用户添加到 root 用户组
sudo synogroup --memberadd root <username>方法二:更改 docker.sock 所有者
如果只希望特定组的用户能直接使用 docker,则使用这个方法。
我目前在使用 DSM 7.2版本,Docker 也被 Container Manager 所替代,提供了容器编排的能力。
Docker 服务监听套接字位于/var/run/docker.sock,默认所有者为root:root。
一般群晖管理员都不会使用 root 账户,也不会使用系统内置的 admin 管理账户,而是创建一个新的账户,授权管理员权限,避免被爆破。这个用户则会属于administrators群组(可通过sudo synogroup --enum可列出所有群组),这是群晖默认的管理群组。
因此只需要将/var/run/docker.sock群组更改为administrators,即可让具有管理员权限的用户直接使用docker。
sudo chgrp administrators /var/run/docker.sock如果希望一些不具备管理员权限的用户能够直接执行docker,则需要单独建立一个群组,用于权限的分配。
sudo synogroup --add docker
sudo synogroup --memberadd docker <username1> <username2> ...
sudo synogroup --get docker更改docker权限:
sudo chgrp docker /var/run/docker.sock自动执行
由于群晖在重启套件的时候,会分配默认的权限,因此上面的授权会失效。
因此自行添加一个开机自动执行脚本。