Dockerfile:在构建过程中创建和挂载磁盘映像

6

我正在尝试在Dockerfile构建过程中构建和挂载自定义磁盘映像:

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

有没有办法实现我想做的事情?


我不知道在容器中是否可能实现这个。你可以尝试以特权模式运行容器 docker run --privileged - Grimmy
2个回答

8
您需要使用docker run--privileged--cap-add功能,但docker build不支持此功能。因此,在当前的Docker版本中,您无法这样做。 请参见此评论:

很多Docker用户希望在构建命令中使用--cap-add或--privileged来模拟运行命令中的操作。

这就是为什么即使维护者对于特定情况不感兴趣,这个问题已经存在了3年并且人们一直在参与讨论。

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

1

它是否以某种方式由 docker-compose 支持? - Mohammed Noureldin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接