在使用群晖的命令行进行管理的时候,执行docker指令需要root账户或者账户具有sudo权限。如果希望非root账户也能直接执行docker指令,可以通过更改docker.sock的群组来实现。
administrators group
如果只希望具有管理员权限的用户能直接使用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.sockdocker group
如果希望一些不具备管理员权限的用户能够直接执行docker,则需要单独建立一个群组,用于权限的分配。
创建群组并分配用户:
sudo synogroup --add docker
sudo synogroup --memberadd docker <username1> <username2> ...
sudo synogroup --get docker更改docker权限:
sudo chgrp docker /var/run/docker.sock