2014-05-08 13 views
5

Ich bin mit einem Dockerfile mein Bild zu bauen, und ich habe einen Befehl gibt in dem sagt:Docker build: read-only-Dateisystem

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

aber es funktioniert nicht, das Bild mit dem folgenden Fehler bauen:

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

Antwort

5

Aus Sicherheitsgründen müssen Sie sich für diesen Vorgang im privilegierten Modus befinden. Derzeit ist es nicht möglich, eine Dockerfile mit dem privilegierten Modus zu verwenden.

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

Warum müssen Sie dies zum Zeitpunkt der Erstellung tun?

+1

Dies wirkt sich auf den Host aus. Wenn Sie es also als Buildtime ausführen, wird es nicht auf den Host angewendet, auf dem der eigentliche Container ausgeführt wird. – creack

1

Dies genau auf Ihre Situation nicht zutrifft, aber ich erhielt häufig read-only file system bemerkt, wenn eine Anzahl von Operationen zu tun versuchen Einbeziehung schreibt:

  • docker build
  • docker rmi
  • usw.

In meinem Fall war ich in der Lage zu lösen, nur durch Anhalten und Starten boot2docker:

Verwandte Themen