Docker 함수는 sudo를 사용할 때 자신을 재귀적으로 호출하지 않습니까?

Docker 함수는 sudo를 사용할 때 자신을 재귀적으로 호출하지 않습니까?

저는 AWS의 Ubuntu EC2 인스턴스를 사용하고 있으며 ~/.bashrc 파일에 다음이 있습니다.

docker(){
   sudo docker "$@"
}

export -f docker;

나는 docker를 신뢰하기 때문에 기본적으로 sudo를 사용하여 모든 docker 명령을 실행하며 이는 DevOps 경험을 위해 원격 서버에서 수행한 최고의 작업과 같습니다. 그러나 그것이 왜 작동하는지 모르겠습니다. 일부 스택이 폭발하거나 무언가가 발생할 때까지 도커 함수가 재귀적으로 호출되는 것 같습니다. 내 생각 엔 sudo는 bash 기능이 아닌 명령 만 호출하는 것입니까?

나는 이렇게 하려고 노력합니다. 예를 들면 다음과 같습니다.

docker(){
   sudo command docker "$@"
}

export -f docker;

그런데 전화를 하면 docker ps이런 말을 듣습니다.

sudo: 명령: 명령을 찾을 수 없습니다

무슨 일인지 아는 사람 있나요?

답변1

sudo확인 PATH(보통 " secure_path", 사용자 또는 루트의 전체 권한을 확인하지도 않음 PATH)주문하다따라서 내장 기능 및 기능에서는 작동하지 않습니다. command은 sudo가 function이 아닌 명령 내에서 사용하는 내장 명령입니다.dockerPATH

할 수 있다command내장 함수(또는 docker 함수와 유사)를 가리키는 래퍼 스크립트를 생성하고 해당 스크립트를 에 넣어 이 문제를 해결하십시오 PATH.해서는 안 된다해. 필요할 때 docker 자체를 실행 해야 합니다 sudo.

관련 정보