"docker cp"는 실행할 수 있지만 "docker ls"는 실행할 수 없는 이유는 무엇입니까?

"docker cp"는 실행할 수 있지만 "docker ls"는 실행할 수 없는 이유는 무엇입니까?

만약 내가한다면

$ sudo docker cp c7033ac0fdd2:/home/mydir/myfile.txt .

파일이 복사됩니다. 하지만 내가 그렇게 한다면

$ sudo docker ls c7033ac0fdd2:/home/mydir/
docker: 'ls' is not a docker command.
See 'docker --help'

그렇다면 디렉토리 내용을 어떻게 나열하고 를 사용하여 작성하지 않는 이유는 무엇입니까 ls?

답변1

몇 가지 합리적인 사항을 가정합니다(쉘과 ls 프로그램이 있고 컨테이너의 진입점이 엄격하게 잠겨 있지 않습니다).

docker exec c7033ac0fdd2 ls /home/mydir

"왜?"에 관해서는 docker에서 빌드해야 하는 양과 외부 프로그램으로 수행해야 하는 양에는 제한이 있습니다.

가정이 유효하지 않은 경우 컨테이너의 내용을 tar 파일로 내보내고 볼 수 있습니다.

docker container export c7033ac0fdd2 | tar vtf - | grep /home/mydir

관련 정보