Какие файлы .dockerenv
и находятся .dockerinit
в корне файловой системы моего контейнера? Как они используются? Есть ли документация по этим файлам?
root@18ceee4f9041:/# ls -al /
total 72
drwxr-xr-x. 21 root root 4096 Jan 4 20:45 .
drwxr-xr-x. 21 root root 4096 Jan 4 20:45 ..
-rwxr-xr-x. 1 root root 0 Jan 4 20:45 .dockerenv
-rwxr-xr-x. 1 root root 0 Jan 4 20:45 .dockerinit
Другие люди задавали подобные вопросы, но я не могу найти ответы:
- .dockerinit / .dockerenv (12.09.2015)
Я спрашиваю, потому что я работаю над ошибкой в моем инструменте для запуска docker, называемом scuba . Вы можете перейти --user
к, docker run
чтобы установить UID процесса в контейнере, но у него нет записи в / etc / passwd, поэтому я изучал варианты создания пользователя во время запуска контейнера.
(Перекрестная публикация в переполнении стека , где она может быть закрыта.)
-u
аргументу. Вы можете прочитать реализацию здесь .Чтобы выяснить, выполняется ли их код в среде докера, было популярно проверять наличие файла
/.dockerinit
или/.dockerenv
.Поскольку файл dockerinit был удален в более новых версиях, лучше всего теперь проверить наличие файла dockerenv.
Пример реализации такой проверки из нашего кода:
источник