Я хочу создать образ докера, в котором я добавляю файл в папку /dev
. Я использую это Dockerfile
:
FROM ubuntu:bionic
COPY test.txt /dev/
После создания этого с помощью:
docker build -t test .
Я получаю образ докера, в котором ничего не добавлено в папку /dev
. docker build
не выдавал ошибок.
Я нахожу это очень странным, потому что копирование в разные папки работает нормально. Например
COPY test.txt /
COPY test.txt /root/
COPY test.txt /home/
все работает нормально.
Есть ли у папки /dev
какие-то особые разрешения? Как скопировать файл в папку /dev
?
Я использую Панель инструментов Docker для Windows.
См.: tldp.org/LDP/sag/html/dev-fs.html
Связано: askubuntu.com/questions/165219/…
@k0pernikus Я хочу добавить драйвер. подробнее github.com/EAIBOT/ydlidar
/dev
— это специальная папка в системах Linux, зарезервированная для хранения ресурсов, связанных с устройствами (файловая система, диски и т. д.), и смонтированная в специальной файловой системе. В контейнере докера он будет перемонтирован с выделенной файловой системой tmpfs, а не в файловой системе основного контейнера (/
). См. следующий пример:
$ docker run -it --rm ubuntu:18.04
root@17b9ad96ccbc:/# df -h /dev/
Filesystem Size Used Avail Use% Mounted on
tmpfs 64M 0 64M 0% /dev
В вашем случае ваш файл был фактически скопирован во время сборки, но во временной файловой системе, которая умерла, как только сборка была завершена.
Вывод: не используйте /dev
в качестве места назначения, выберите другую папку.
Спасибо @Zeitounator. Теперь я понимаю, почему файл файла исчез, хотя ошибки не было.
Почему вы хотите использовать папку
/dev
? Та самая специальная папка, в которой лежат ссылки на все устройства?