diff --git a/components/engine/graphdriver/driver.go b/components/engine/graphdriver/driver.go index f521e0bbaf..3987a79580 100644 --- a/components/engine/graphdriver/driver.go +++ b/components/engine/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/components/engine/runtime.go b/components/engine/runtime.go index bfe1aee5a7..48d632b3e8 100644 --- a/components/engine/runtime.go +++ b/components/engine/runtime.go @@ -628,7 +628,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 }