我想创建一个docker映像,在其中将文件添加到/dev
文件夹中。我正在使用此Dockerfile
:
FROM ubuntu:bionic
COPY test.txt /dev/
使用以下方法构建此对象后:
docker build -t test .
我得到一个Docker映像,其中没有添加任何内容到/dev
文件夹中。 docker build
未引发任何错误。
我发现这很奇怪,因为复制到其他文件夹可以正常工作。例如
COPY test.txt /
COPY test.txt /root/
COPY test.txt /home/
一切正常。
/dev
文件夹是否具有某些特殊权限?如何将文件复制到/dev
文件夹?
答案 0 :(得分:6)
/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
用作目的地,请选择另一个文件夹。