Docker绑定安装模式被强制为只读

时间:2018-10-20 17:21:06

标签: docker

我想使用docker构建一个应用程序,并使用构建挂载将构建的文件返回到主机,但是我无法获取docker映像以能够写入已挂载的目录。这是一个再现问题的最小Dockerfile

FROM alpine:3.7
WORKDIR /app
RUN touch /app/build/test.txt

我用来运行此构建的命令是docker build --rm -v "$(pwd)/build:/app/build" .,我得到的错误如下所示:

$ docker build --rm -v "$(pwd)/build:/app/build" .
Sending build context to Docker daemon 81.29 MB
Step 1/3 : FROM alpine:3.7
 ---> 34ea7509dcad
Step 2/3 : WORKDIR /app
 ---> b0c4ac704af7
Removing intermediate container 234ef41fd395
Step 3/3 : RUN touch /app/build/test.txt
 ---> Running in e095ed8b29d5
touch: /app/build/test.txt: Read-only file system

我在带有Docker v1.13.1的Fedora 27上运行。我的机器上有一个docker组,允许运行没有sudo的docker命令,如here

所述

我尝试了以下操作但未成功:

  • 使用sudo调用docker命令
  • 禁用SELinux(目前我保持禁用状态)
  • 按照herez)的说明,在卷中添加Z / -v "$(pwd)/build:/app/build:Z"挂载选项
  • 添加rw挂载选项(-v "$(pwd)/build:/app/build:rw"
  • 在主机上没有docker build目录的情况下调用build

1 个答案:

答案 0 :(得分:0)

如评论中所指出,docker build不支持-v选项。我尝试使用Dockerfile和docker build执行的操作应改为使用docker run命令:

docker run -i -v $(pwd)/build:/app/build alpine:3.7 << EOF
 touch /app/build/test.txt
 ... other commands ...
EOF