AI

Docker container内でsudoするとsudo: effective uid is not 0と言われる問題が解決 !

いきさつ

実はグッディーの環境ではいつからかDocker container内でsudoすると、

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?

と言われるようになってました。かれこれ1年以上。

ただ、簡単には直せなかったので放置していたのですが、今回こちらの記事(Docker containerからHostのCamera画像を取得してHostのDisplayに出力する)のためにいろいろ試している中で無事解決したので報告させて頂きます。

助けられたのは

こちらのExited with code 1 and error message ‘sudo: effective uid is not 0 ….’ #388という記事。何気なく斜め読みしていると、

Solution: set option ‘suid’ in /etc/fstab for partition where docker stores it’s files.

という文字が。

あ、そういえば以前、docker imageがメインのSSDを圧迫するので、外部HDDに切り替えたっけ。えーとどうやったんだっけ ? ああこの記事だ : Dockerの/var/lib/dockerを移動する – Qiita

/etc/fstabをいじって、/var/lib/dockerを/mnt/hdd1/dockerに移動したんだよな。どれどれ… 見事にnosuidになってる !!!

(/etc/fdtab)
LABEL=hdd1 /mnt/hdd1 auto nosuid,nodev,nofail,x-gvfs-show 0 0
/mnt/hdd1/docker /var/lib/docker  none bind 0 0

これをsuidにして再起動、めでたくsudoがDocker container内で機能しましたとさ。しかし苦節長かった…


   
関連記事
  • Docker containerからHostのCamera画像を取得してHostのDisplayに出力する
  • Docker buildでthe public key is not available: NO_PUBKEY A4B469963BF863CC への対処
  • Staticなffmpegがとてもusefulだった話
  • Docker + opencv-pythonでImportError: libGL.so.1が出て調べたこと

    コメントを残す

    *

    CAPTCHA