기본 .docker 데몬에 의해 파일이 생성될 때 파일에 할당된 기본 권한을 변경하려고 합니다 umask
. docker 데몬 서비스는 루트로 실행되고 umask
루트를 사용하여 파일을 생성합니다. umask
명령을 추가 /etc/init.d/docker
하고 원하는 명령을 umask(000)
시작-중지 데몬에 옵션으로 전달하여 변경을 시도했지만 그 중 아무 것도 작동하지 않는 것 같습니다. docker 데몬이 생성한 파일에 할당된 기본 권한을 어떻게 변경합니까?
편집: 컨테이너 내부가 아닌 호스트 컴퓨터에서 docker 데몬이 생성한 파일 및 폴더에 대한 기본 권한을 설정하려고 합니다. 예를 들어 호스트의 컨테이너에 매핑된 폴더가 존재하지 않는 경우 docker는 자동으로 폴더를 생성하고 기본 umask(즉, 루트의 umask)를 기반으로 권한을 할당합니다.
답변1
Docker 컨테이너는 일반적으로 비특권 모드에서 실행되도록 설계되었습니다. 컨테이너의 프로세스가 루트로 실행되면 프로세스 uid 0은 다른 사용자(일반적으로 "nobody")로 호스트 운영 체제에 매핑됩니다. 컨테이너 내부의 모든 프로세스가 호스트 운영 체제에서 파일을 읽으려면 파일을 누구나 읽을 수 있어야 합니다. 아마도 (코드에 익숙하지 않기 때문에 주의 사항) Docker는 -v 옵션을 통해 생성한 디렉터리를 컨테이너에서 실제로 읽을 수 있는지 확인하기 위해 umask 설정을 무시합니다.
호스트 운영 체제에 액세스할 수 있는 btrfs 또는 overlayfs를 통해 컨테이너 내부에 생성된 파일을 공개적으로 읽을 수 있어야 하는지 잘 모르겠습니다. 또한 이러한 파일 생성이 컨테이너 내에서 처리되는지 아니면 호스트 OS에서 처리되는지 확실하지 않습니다.