diff --git a/graphdriver/driver.go b/graphdriver/driver.go index f521e0bbaf..3987a79580 100644 --- a/graphdriver/driver.go +++ b/graphdriver/driver.go @@ -50,7 +50,7 @@ func Register(name string, initFunc InitFunc) error { return nil } -func getDriver(name, home string) (Driver, error) { +func GetDriver(name, home string) (Driver, error) { if initFunc, exists := drivers[name]; exists { return initFunc(path.Join(home, name)) } @@ -62,11 +62,11 @@ func New(root string) (Driver, error) { var lastError error // Use environment variable DOCKER_DRIVER to force a choice of driver if name := os.Getenv("DOCKER_DRIVER"); name != "" { - return getDriver(name, root) + return GetDriver(name, root) } // Check for priority drivers first for _, name := range priority { - driver, lastError = getDriver(name, root) + driver, lastError = GetDriver(name, root) if lastError != nil { utils.Debugf("Error loading driver %s: %s", name, lastError) continue diff --git a/runtime.go b/runtime.go index 5072a00fdd..422cebf7b2 100644 --- a/runtime.go +++ b/runtime.go @@ -629,7 +629,14 @@ func NewRuntimeFromDirectory(config *DaemonConfig) (*Runtime, error) { if err != nil { return nil, err } - volumes, err := NewGraph(path.Join(config.Root, "volumes"), driver) + + // We don't want to use a complex driver like aufs or devmapper + // for volumes, just a plain filesystem + volumesDriver, err := graphdriver.GetDriver("dummy", config.Root) + if err != nil { + return nil, err + } + volumes, err := NewGraph(path.Join(config.Root, "volumes"), volumesDriver) if err != nil { return nil, err }