어떤 폴더에서든 이 작업을 수행 하면 ls -alt
다음과 같은 결과가 나타납니다. 루트로 만든 파일이나 폴더도 마찬가지입니다. stat filename
return 과 같은 명령 Operation not permitted
. 원인이 무엇인지 아시나요?
[root@011319292d9c ~]# pwd
/root
[root@011319292d9c ~]# ls -alt
ls: cannot access '.': Operation not permitted
ls: cannot access '..': Operation not permitted
ls: cannot access '.bash_profile': Operation not permitted
ls: cannot access '.tcshrc': Operation not permitted
ls: cannot access '.bashrc': Operation not permitted
ls: cannot access '.bash_logout': Operation not permitted
ls: cannot access 'test-file-i-created-as-root': Operation not permitted
total 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
-????????? ? ? ? ? ? .bash_logout
-????????? ? ? ? ? ? .bash_profile
-????????? ? ? ? ? ? .bashrc
-????????? ? ? ? ? ? .cshrc
-????????? ? ? ? ? ? .tcshrc
-????????? ? ? ? ? ? test-file-i-created-as-root
PS 이것은 도커 컨테이너 내부에서 발생합니다. 디버깅 목적으로 Redhat 8.5의 도커 이미지에서 bash를 사용하여 다음과 같이 시작했습니다.
docker run --rm -ti --entrypoint /bin/bash <Image-ID>
다음으로 시작하여 실행 중인 컨테이너를 연결할 때 문제가 없다는 점을 언급하는 것이 중요합니다.docker run
docker exec -ti <Image-ID> /bin/bash
컨테이너의 호스트 운영 체제:
cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.5 (Ootpa)"
-------------
uname -a
Linux 3985430895d8 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
도커파일
FROM custom-docker-image:tag
RUN microdnf update
RUN install-custom-server-modules.sh
CMD ['start-script.sh']
(!)RUN microdnf update
Dockerfile에서 해당 줄을 제거 하면 더 이상 문제가 발생하지 않습니다.