Docker 컨테이너 내에서 실행하면 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?
권한이 sudo
올바르게 설정되었습니다.
-rwsr-xr-x 1 root root 149080 gen 18 2018 /usr/bin/sudo
또한 루트 파일 시스템은 nosuid
.( 마운트 지점으로 mount | grep nosuid
포함되지 않음 )로 마운트되지 않습니다./
무엇이 잘못될 수 있나요?
답변1
이에 따르면asbe의 GitHub 게시물,
한 호스트의 컨테이너는 sudo에서 제대로 작동하지만 거의 동일한 호스트에서는 오류가 발생합니다. 마침내 문제의 호스트가 스토리지 드라이버로 "오버레이"와 기타 "aufs"를 사용하고 있었기 때문에 그 이유를 알아냈습니다. 두 docker 설치 모두 /var/lib/docker를 "nosuid"가 설치된 드라이브로 이동했습니다. "override"는 "nosuid"를 존중하는 것으로 나타났습니다."nosuid"가 제거된 디스크에 /var/lib/docker가 설치되어 있는지 확인하기만 하면 모든 문제가 해결됩니다.(이상한 일 - "aufs"를 사용한 설정에서는 이런 일이 발생하지 않습니다)
(강조는 제가 추가했습니다.)
실제로 해당 옵션이 활성화된 data-root
(기본적으로 /var/lib/docker
) 다른 드라이브에서 Docker를 설치했습니다 nosuid
. nosuid
호스트 시스템에서 이 명령을 비활성화 했습니다 .
sudo mount -n -o remount,suid /path/to/mountpoint
그런 다음 sudo
컨테이너를 다시 시작하면 됩니다.
결정하다/path/to/mountpoint
: 경로는 /path/to/mountpoint
가 포함된 경로입니다 . data-root
먼저 data-root
디렉터리를 확인하려면 를 실행 하세요 docker info | grep "Docker Root"
. 예를 들어, 설치가 표시 되고 설치가 표시되면(또는 설치되지 않음) 설치됩니다.df
Mounted on
docker-root
/home/docker/data
du
/home
/home/docker
/home/docker/data
/path/to/mountpoint
/home
(이 답변을 확장하고 후속 조치를 취하는 데 도움을 준 @DonTintoretto에게 감사드립니다.)