Question

I'm using a Dockerfile to build my image and I have a command in there that says:

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

but it fails to build the image with the following error:

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

La solution

For security reasons, you need to be in privileged mode for this operation. It is not currently possible to use a Dockerfile with the privileged mode.

$> 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

Why do you need to do this at build time?

Autres conseils

This may not apply to your exact situation, but I was receiving read-only file system notices frequently when trying to do a number of operations involving writes:

  • docker build
  • docker rmi
  • etc.

In my case, I was able to solve just by stopping and starting boot2docker:

$ bootdocker down
$ bootdocker up

Late to the party, but I kept getting this error while running docker build. Turns out my machine just ran out of storage space! Rebooting and deleting all my temp files fixed it.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top