Подключишь в контейнер обычный каталог хоста и увидишь, чьими становятся файлы, которые пишет контейнер.
Вместо имени тома в -v можно дать путь к каталогу хоста — это bind mount: -v /home/student/notes-host:/data. Путь начинается с /, ~ или ./ — так docker отличает его от имени тома. Контейнер видит каталог хоста как есть: что процесс пишет в /data, сразу появляется в каталоге хоста, и наоборот.
Запиши файл из контейнера в каталог хоста
Запусти notes с каталогом ~/notes-host на месте /data, создай из контейнера файл notes.txt, посмотри каталог с хоста и допиши в файл строку.
Сначала предположи
Ты дописываешь строку в notes.txt со стороны хоста — пользователем student. Что ответит оболочка?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
Права на файлы ядро проверяет по числам — UID владельца файла и UID процесса. Процесс в notes работает от root, UID 0, и файл, который он создал, на хосте тоже принадлежит root. Права rw-r--r-- дают остальным только чтение, поэтому student дописать его не может.
Бывает и наоборот: процесс в контейнере работает от обычного пользователя. Тогда к файлам каталога хоста он получает доступ по тем же правам, что любой пользователь хоста с тем же UID. Как запустить процесс контейнера от другого пользователя — в уроке о лимитах и пользователе в контейнере.