20

我正在使用 aDockerfile来构建我的图像,并且其中有一个命令说:

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
4

2 回答 2

15

出于安全原因,您需要处于特权模式才能执行此操作。目前无法在特权模式下使用 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

为什么需要在构建时执行此操作?

于 2014-05-09T18:14:41.903 回答
1

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

  • docker build
  • docker rmi
  • 等等

就我而言,我可以通过停止和启动来解决boot2docker

$ bootdocker down
$ bootdocker up
于 2015-05-27T20:39:24.367 回答