>  기사  >  운영 및 유지보수  >  docker를 사용하려면 루트 권한이 필요합니까?

docker를 사용하려면 루트 권한이 필요합니까?

WBOY
WBOY원래의
2022-06-27 10:33:458204검색

Docker를 사용하려면 루트 권한이 필요합니다. 루트 권한이 없는 일반 사용자는 docker를 작동할 수 없습니다. 루트 권한이 없으면 sudo를 사용하여 관리자 권한을 얻거나 docker 명령을 실행하거나 현재 사용자를 docker에 추가할 수 있습니다. user 그룹이면 현재 사용자는 "Unix 소켓"에 액세스할 수 있는 권한을 가지며 docker 관련 명령을 실행할 수 있습니다.

docker를 사용하려면 루트 권한이 필요합니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, docker 버전 19.03, Dell G3 컴퓨터.

docker를 사용하려면 루트 권한이 필요합니까?

docker를 실행하려면 루트 권한이 필요합니까?

루트가 아닌 사용자에게 docker 명령을 실행할 권한이 없는 문제를 해결하려면 방법은 다음과 같습니다.

방법 1:

sudo를 사용하여 관리자 권한을 얻고 docker 명령을 실행합니다. 제한 사항

방법 2:

docker 데몬이 시작되면 기본적으로 docker라는 사용자 그룹에 Unix 소켓을 읽고 쓸 수 있는 권한이 부여되므로 docker를 생성하면 됩니다. user 그룹을 선택하고 현재 사용자를 docker user 그룹에 추가하면 현재 사용자는 Unix 소켓에 액세스할 수 있는 권한을 갖게 되며 docker 관련 명령을 실행할 수 있습니다

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组

확장 지식:

docker 데몬에는 루트 권한이 있습니다. 즉, docker 데몬을 실행하는 사용자는 여전히 루트입니다. 다음과 같이 수정해야 합니다.

docker를 사용하려면 루트 권한이 필요합니까?

즉, 루트가 아닌 사용자로 docker를 설치하고 docker 데몬을 시작해야 합니다. 이 설치 및 작업 모드를 "RootLess" 모드라고 합니다. 설치할 수 있지만 전제 조건이 있습니다. "RootLess" 모드는 Docker Engine v19.03에서 실험적 기능으로 도입되었으며 Docker Engine v20.10부터 공식적으로 사용할 수 있습니다.

전제 조건

newuidmap 및 newgidmap 도구 Shadow-utils를 설치해야 합니다. 즉, 위에서 /etc/subuid 및 /etc/subuid를 구성하려면 이 두 도구의 지원이 필요합니다. 설치 전, yum list listedshadow-utils를 이용해 운영체제가 설치되어 있는지, 운영체제와 함께 제공되는지 확인한다. 있다면 설치하지 말고 세 번째 단계의 구성이 필요하다.

1단계: Shadow-utils46-newxidmap

curl -o /etc/yum.repos.d/vbatts-shadow-utils-newxidmap-epel-7.repo https://copr.fedorainfracloud.org/coprs/vbatts/shadow-utils-newxidmap/repo/epel-7/vbatts-shadow-utils-newxidmap-epel-7.repo

을 포함하는 소프트웨어 패키지 설치 소스를 추가합니다. 2단계: yum install -y Shadow-utils46-newxidmap

3단계: /etc/sysctl에서 시스템 매개변수 user를 수정합니다. .max_user_namespaces = 28633 수정이 완료된 후 sysctl --system 명령을 실행하여 매개변수를 적용합니다.

echo user.max_user_namespaces=28633 >> /etc/sysctl.d/userns.conf;
sudo sysctl -p /etc/sysctl.d/userns.conf;
echo user.max_user_namespaces=28633 >> /etc/sysctl.d/userns.conf;
sudo sysctl -p /etc/sysctl.d/userns.conf;

이 매개변수의 기본값은 0입니다. 이는 운영 체제 사용자가 하위 UI 공간을 가질 수 없음을 의미합니다. 위 작업이 완료된 후 sysctl --all --pattern user_namespaces 명령을 사용하여 수정 결과를 확인합니다.

추천 학습: "docker 비디오 튜토리얼"

위 내용은 docker를 사용하려면 루트 권한이 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.