[英]How to mount host volumes into docker containers in Dockerfile during build
[英]Dockerfile: create and mount disk image during build
我正在尝试在 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
。
有什么办法可以实现我想做的事吗?
您将需要--privileged
docker run
确实具有的--privileged
或--cap-add
功能,但--cap-add
docker build
不支持该功能。 因此,从当前的 Docker 版本开始,您不能.
看到这个评论:
大量 docker 用户希望能够在构建命令中使用 --cap-add 或 --privileged 来模拟运行命令中的内容。
这就是为什么这张票已经开放了 3 年,尽管维护人员对在这个特定实例中为用户提供他们想要的东西不感兴趣,但人们不断地参与其中。
作为替代方案,您可以将该RUN
命令移动到应在容器启动时运行的脚本(并添加提到的--privileged
标志,或--cap-add=SYS_ADMIN
)
似乎您现在可以在构建模式下运行“不安全”:
检查文档: https : //github.com/docker/buildx/blob/master/README.md#--allowentitlement
docker buildx create --use --name insecure-builder --buildkitd-flags '--allow-insecure-entitlement security.insecure'
docker buildx build --allow security.insecure -t my-image:latest .
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.