diff --git a/daemon/daemon.go b/daemon/daemon.go index 44b41be38b..9de1411d5c 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -550,7 +550,12 @@ func NewDaemon(config *Config, registryService registry.Service, containerdRemot driverName = config.GraphDriver } + d.RegistryService = registryService d.PluginStore = pluginstore.NewStore(config.Root) + // Plugin system initialization should happen before restore. Do not change order. + if err := d.pluginInit(config, containerdRemote); err != nil { + return nil, err + } d.layerStore, err = layer.NewStoreFromOptions(layer.StoreOptions{ StorePath: config.Root, @@ -649,7 +654,6 @@ func NewDaemon(config *Config, registryService registry.Service, containerdRemot Type: config.LogConfig.Type, Config: config.LogConfig.Config, } - d.RegistryService = registryService d.EventsService = eventsService d.volumes = volStore d.root = config.Root @@ -668,11 +672,6 @@ func NewDaemon(config *Config, registryService registry.Service, containerdRemot return nil, err } - // Plugin system initialization should happen before restore. Do not change order. - if err := d.pluginInit(config, containerdRemote); err != nil { - return nil, err - } - if err := d.restore(); err != nil { return nil, err } diff --git a/daemon/graphdriver/plugin.go b/daemon/graphdriver/plugin.go index 6d2b85d8a1..5e519ad255 100644 --- a/daemon/graphdriver/plugin.go +++ b/daemon/graphdriver/plugin.go @@ -3,6 +3,7 @@ package graphdriver import ( "fmt" "io" + "path/filepath" "github.com/docker/docker/pkg/plugingetter" ) @@ -26,5 +27,5 @@ func lookupPlugin(name, home string, opts []string, pg plugingetter.PluginGetter func newPluginDriver(name, home string, opts []string, c pluginClient) (Driver, error) { proxy := &graphDriverProxy{name, c} - return proxy, proxy.Init(home, opts) + return proxy, proxy.Init(filepath.Join(home, name), opts) }