Почему Docker не может создавать файлы COPY в папку / dev? - PullRequest
4 голосов
/ 28 мая 2019

Я хочу создать образ докера, в который я добавляю файл в папку /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 Toolbox для Windows .

1 Ответ

6 голосов
/ 28 мая 2019

/dev - это специальная папка в системах linux, зарезервированная для поддержки ресурсов, связанных с устройствами (файловая система, диски и т. Д.) И смонтированная в специальной файловой системе. В Docker-контейнере он будет перемонтирован с выделенной файловой системой 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 в качестве пункта назначения, выберите другую папку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...