Docker build:只读文件系统

时间:2014-05-08 09:16:09

标签: docker boot2docker

我正在使用Dockerfile来构建我的图像,我在那里有一个命令:

RUN sysctl -w net.ipv4.route.flush=1

但无法使用以下错误构建图像:

Step 20 : RUN sysctl -w net.ipv4.route.flush=1
 ---> Running in 4d7302b56c53
sysctl: setting key "net.ipv4.route.flush": Read-only file system

2 个答案:

答案 0 :(得分:8)

出于安全原因,您需要处于特权模式才能执行此操作。目前无法使用具有特权模式的Dockerfile。

$> docker run ubuntu sysctl -w net.ipv4.route.flush=1 && echo ok || echo ko
sysctl: setting key "net.ipv4.route.flush": Read-only file system
ko
$> docker run --privileged ubuntu sysctl -w net.ipv4.route.flush=1 && echo ok || echo ko
ok

为什么你需要在构建时这样做?

答案 1 :(得分:2)

这可能不适用于您的确切情况,但在尝试执行涉及写入的大量操作时,我经常收到read-only file system次通知:

  • docker build
  • docker rmi

在我的情况下,我只能通过停止和启动boot2docker

来解决
$ bootdocker down
$ bootdocker up