sudo
在 Docker 容器内运行会产生错误
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
Run Code Online (Sandbox Code Playgroud)
权限sudo
设置正确:
-rwsr-xr-x 1 root root 149080 gen 18 2018 /usr/bin/sudo
Run Code Online (Sandbox Code Playgroud)
此外,根文件系统未挂载为nosuid
. (mount | grep nosuid
不包括/
作为挂载点。)
可能有什么问题?
一台主机上的容器可以 sudo 就好了,但在几乎等效的主机上发生了错误。终于找出原因是有问题的主机使用了“overlay”作为存储驱动程序和其他“aufs”。两个 docker 安装都将 /var/lib/docker 移动到安装有“nosuid”的驱动器。原来“覆盖”尊重“nosuid”。只需确保 /var/lib/docker 已安装在删除“nosuid”的磁盘上即可解决所有问题。(奇怪的是 - 使用“aufs”的设置不会发生这种情况)
(重点是我加的。)
事实上,我是/var/lib/docker
从另一个nosuid
启用了该选项的驱动器安装的。我nosuid
用这个命令禁用了:
sudo mount -n -o remount,suid /mount/for/var/lib/docker
Run Code Online (Sandbox Code Playgroud)
然后sudo
在重新启动容器后工作。
归档时间: |
|
查看次数: |
7644 次 |
最近记录: |