docker - 为什么 docker 无法将 COPY 文件构建到/dev 文件夹?

标签 docker

我想创建一个 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文件夹?

    我正在使用 Docker Toolbox on windows .

    最佳答案

    /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作为目的地,选择其他文件夹。

    关于docker - 为什么 docker 无法将 COPY 文件构建到/dev 文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346114/

    相关文章:

    docker - 通过Docker运行时,Eureka ZUUL “Forwarding error”

    docker - 在 Kubernetes 或 Google Container Engine 中等待作业/pod 完成

    macos - 带有docker的Vagrant多机尝试创建两个boot2docker vms

    ubuntu - "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -"我们应该在这里添加一些 key 吗?

    docker - 将文件添加到Docker实例不起作用

    azure - 如何将 docker 容器作为 Windows 服务运行

    json - Marathon docker 应用程序中的 --add-host 参数

    php - 路径在容器内不可写

    mysql - 如何连接mysql容器?

    docker - Supervisord 不断重复一个退出为零的过程。