Я пытаюсь понять, как файловая структура работает внутри контейнеров докеров, наряду с пониманием томов и монтирования.
Одна вещь, которая меня смущает, это то, что когда я docker exec -it <container id> /bin/bash
в контейнере, я не могу cd
в некоторые каталоги.
Например, если я запускаю cd logs
, я ожидаю, что смогу запустить ls
, чтобы получить список файлов журналов, но я получаю No such file or directory
после команды cd logs
.
Однако я могу запустить cd wwwroot
и перемещаться.
На изображении терминала ниже вы можете увидеть результат ls
после того, как я выполнил exec'd.
Я могу запустить cat logs\2019-07-04.log.json
, например, чтобы распечатать содержимое файла на экране. Но я все еще не могу сделать cd logs
.
Я пробовал также следующее:
Это похоже на то, что путь к файлу является «ключом», а не правильной структурой каталогов.
Таким образом, это, похоже, ограничено directories
, в которое приложение записывает во время выполнения, в то время как файлы, загружаемые в сборку, имеют правильную файловую структуру.
Это специфично для .NET Core в контейнерах linux? Почему это так работает?