Я обнаружил, что не могу перечислить содержимое вложенного каталога в контейнере Docker.
Структура файла:
├── Dockerfile
└── foo
└── bar
└── baz.txt
Dockerfile:
FROM debian
COPY foo /app/foo
WORKDIR /app
CMD ["ls", "foo/bar"]
Я могу успешно запустить ls foo/bar/
на хост-машине:
$ ls foo/bar/
baz.txt
Но когда я запускаю контейнер, я получаю ошибку «Permission denied».
$ docker build -t foo .
$ docker run foo
ls: cannot open directory 'foo/bar': Permission denied
I не понимаю, почему в разрешении отказано, потому что я являюсь пользователем root в контейнере, а каталог, похоже, имеет соответствующие разрешения:
$ docker run -it foo sh
# whoami
root
# cd foo
# ls -l
total 4
drwxrwxr-x. 2 root root 4096 Aug 3 19:13 bar
Среда:
$ docker --version
Docker version 19.03.8, build afacb8b
Хост-компьютер: Fedora 32