Dockerfile:在构build过程中创build并挂载磁盘映像

我正在尝试在Dockerfile构build过程中构build并安装自定义磁盘映像:

FROM ubuntu:16.04 RUN dd if=/dev/zero of=foo.img count=500 bs=1M RUN mkfs.ext4 foo.img RUN mkdir -p /media/ext4disk RUN mount -t ext4 foo.img /media/ext4disk 

运行docker build ,我得到最后一个命令的以下错误信息: mount failed: Unknown error -1

有什么方法可以实现我想要做的?

您将需要--privileged docker run具有的--privileged--cap-addfunction,但--cap-add docker build不支持。 所以,就目前的Docker版本而言, 你不能 。

看到这个评论:

相当数量的docker用户希望能够在build命令中使用cap-add或者-privileged来模拟run命令中的内容。

这就是为什么这张票已经开放3年了,即使维护人员没有兴趣在这个具体的例子中给用户提供他们想要的东西,人们也不断地提出要求。

作为替代方法,您可以将RUN命令移动到容器启动时应运行的脚本(并添加提及的 – --privileged标志或--cap-add=SYS_ADMIN