Merge pull request #43982 from thaJeztah/daemon_remove_graphdriver_field
ImageService: rename GraphDriverName to StorageDriver, remove daemon.graphdriver
This commit is contained in:
commit
464882e398
|
@ -154,7 +154,7 @@ func (daemon *Daemon) newContainer(name string, operatingSystem string, config *
|
||||||
base.ImageID = imgID
|
base.ImageID = imgID
|
||||||
base.NetworkSettings = &network.Settings{IsAnonymousEndpoint: noExplicitName}
|
base.NetworkSettings = &network.Settings{IsAnonymousEndpoint: noExplicitName}
|
||||||
base.Name = name
|
base.Name = name
|
||||||
base.Driver = daemon.imageService.GraphDriverName()
|
base.Driver = daemon.imageService.StorageDriver()
|
||||||
base.OS = operatingSystem
|
base.OS = operatingSystem
|
||||||
return base, err
|
return base, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,10 +78,9 @@ func (i *ImageService) Cleanup() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GraphDriverName returns the name of the graph drvier
|
// StorageDriver returns the name of the default storage-driver (snapshotter)
|
||||||
// moved from Daemon.GraphDriverName, used by:
|
// used by the ImageService.
|
||||||
// - newContainer
|
func (i *ImageService) StorageDriver() string {
|
||||||
func (i *ImageService) GraphDriverName() string {
|
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,6 @@ type Daemon struct {
|
||||||
sysInfo *sysinfo.SysInfo
|
sysInfo *sysinfo.SysInfo
|
||||||
shutdown bool
|
shutdown bool
|
||||||
idMapping idtools.IdentityMapping
|
idMapping idtools.IdentityMapping
|
||||||
graphDriver string // TODO: move graphDriver field to an InfoService
|
|
||||||
PluginStore *plugin.Store // TODO: remove
|
PluginStore *plugin.Store // TODO: remove
|
||||||
pluginManager *plugin.Manager
|
pluginManager *plugin.Manager
|
||||||
linkIndex *linkIndex
|
linkIndex *linkIndex
|
||||||
|
@ -239,7 +238,7 @@ func (daemon *Daemon) restore() error {
|
||||||
log.WithError(err).Error("failed to load container")
|
log.WithError(err).Error("failed to load container")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if c.Driver != daemon.graphDriver {
|
if c.Driver != daemon.imageService.StorageDriver() {
|
||||||
// Ignore the container if it wasn't created with the current storage-driver
|
// Ignore the container if it wasn't created with the current storage-driver
|
||||||
log.Debugf("not restoring container because it was created with another storage driver (%s)", c.Driver)
|
log.Debugf("not restoring container because it was created with another storage driver (%s)", c.Driver)
|
||||||
return
|
return
|
||||||
|
@ -834,18 +833,19 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var graphDriver string
|
||||||
if isWindows {
|
if isWindows {
|
||||||
// On Windows we don't support the environment variable, or a user supplied graphdriver
|
// On Windows we don't support the environment variable, or a user supplied graphdriver
|
||||||
d.graphDriver = "windowsfilter"
|
graphDriver = "windowsfilter"
|
||||||
} else {
|
} else {
|
||||||
// Unix platforms however run a single graphdriver for all containers, and it can
|
// Unix platforms however run a single graphdriver for all containers, and it can
|
||||||
// be set through an environment variable, a daemon start parameter, or chosen through
|
// be set through an environment variable, a daemon start parameter, or chosen through
|
||||||
// initialization of the layerstore through driver priority order for example.
|
// initialization of the layerstore through driver priority order for example.
|
||||||
if drv := os.Getenv("DOCKER_DRIVER"); drv != "" {
|
if drv := os.Getenv("DOCKER_DRIVER"); drv != "" {
|
||||||
d.graphDriver = drv
|
graphDriver = drv
|
||||||
logrus.Infof("Setting the storage driver from the $DOCKER_DRIVER environment variable (%s)", drv)
|
logrus.Infof("Setting the storage driver from the $DOCKER_DRIVER environment variable (%s)", drv)
|
||||||
} else {
|
} else {
|
||||||
d.graphDriver = config.GraphDriver // May still be empty. Layerstore init determines instead.
|
graphDriver = config.GraphDriver // May still be empty. Layerstore init determines instead.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -941,7 +941,7 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S
|
||||||
layerStore, err := layer.NewStoreFromOptions(layer.StoreOptions{
|
layerStore, err := layer.NewStoreFromOptions(layer.StoreOptions{
|
||||||
Root: config.Root,
|
Root: config.Root,
|
||||||
MetadataStorePathTemplate: filepath.Join(config.Root, "image", "%s", "layerdb"),
|
MetadataStorePathTemplate: filepath.Join(config.Root, "image", "%s", "layerdb"),
|
||||||
GraphDriver: d.graphDriver,
|
GraphDriver: graphDriver,
|
||||||
GraphDriverOptions: config.GraphOptions,
|
GraphDriverOptions: config.GraphOptions,
|
||||||
IDMapping: idMapping,
|
IDMapping: idMapping,
|
||||||
PluginGetter: d.PluginStore,
|
PluginGetter: d.PluginStore,
|
||||||
|
@ -951,16 +951,13 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// As layerstore initialization may set the driver
|
|
||||||
d.graphDriver = layerStore.DriverName()
|
|
||||||
|
|
||||||
// Configure and validate the kernels security support. Note this is a Linux/FreeBSD
|
// Configure and validate the kernels security support. Note this is a Linux/FreeBSD
|
||||||
// operation only, so it is safe to pass *just* the runtime OS graphdriver.
|
// operation only, so it is safe to pass *just* the runtime OS graphdriver.
|
||||||
if err := configureKernelSecuritySupport(config, d.graphDriver); err != nil {
|
if err := configureKernelSecuritySupport(config, layerStore.DriverName()); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
imageRoot := filepath.Join(config.Root, "image", d.graphDriver)
|
imageRoot := filepath.Join(config.Root, "image", layerStore.DriverName())
|
||||||
|
|
||||||
d.volumes, err = volumesservice.NewVolumeService(config.Root, d.PluginStore, rootIDs, d)
|
d.volumes, err = volumesservice.NewVolumeService(config.Root, d.PluginStore, rootIDs, d)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -1125,7 +1122,7 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S
|
||||||
logrus.WithFields(logrus.Fields{
|
logrus.WithFields(logrus.Fields{
|
||||||
"version": dockerversion.Version,
|
"version": dockerversion.Version,
|
||||||
"commit": dockerversion.GitCommit,
|
"commit": dockerversion.GitCommit,
|
||||||
"graphdriver": d.graphDriver,
|
"graphdriver": d.ImageService().StorageDriver(),
|
||||||
}).Info("Docker daemon")
|
}).Info("Docker daemon")
|
||||||
|
|
||||||
return d, nil
|
return d, nil
|
||||||
|
|
|
@ -72,6 +72,6 @@ type ImageService interface {
|
||||||
DistributionServices() images.DistributionServices
|
DistributionServices() images.DistributionServices
|
||||||
Children(id image.ID) []image.ID
|
Children(id image.ID) []image.ID
|
||||||
Cleanup() error
|
Cleanup() error
|
||||||
GraphDriverName() string
|
StorageDriver() string
|
||||||
UpdateConfig(maxDownloads, maxUploads int)
|
UpdateConfig(maxDownloads, maxUploads int)
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,10 +172,8 @@ func (i *ImageService) Cleanup() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GraphDriverName returns the name of the graph drvier
|
// StorageDriver returns the name of the storage driver used by the ImageService.
|
||||||
// moved from Daemon.GraphDriverName, used by:
|
func (i *ImageService) StorageDriver() string {
|
||||||
// - newContainer
|
|
||||||
func (i *ImageService) GraphDriverName() string {
|
|
||||||
return i.layerStore.DriverName()
|
return i.layerStore.DriverName()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -120,18 +120,18 @@ func (daemon *Daemon) SystemVersion() types.Version {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (daemon *Daemon) fillDriverInfo(v *types.Info) {
|
func (daemon *Daemon) fillDriverInfo(v *types.Info) {
|
||||||
|
v.Driver = daemon.imageService.StorageDriver()
|
||||||
|
v.DriverStatus = daemon.imageService.LayerStoreStatus()
|
||||||
|
|
||||||
const warnMsg = `
|
const warnMsg = `
|
||||||
WARNING: The %s storage-driver is deprecated, and will be removed in a future release.
|
WARNING: The %s storage-driver is deprecated, and will be removed in a future release.
|
||||||
Refer to the documentation for more information: https://docs.docker.com/go/storage-driver/`
|
Refer to the documentation for more information: https://docs.docker.com/go/storage-driver/`
|
||||||
|
|
||||||
switch daemon.graphDriver {
|
switch v.Driver {
|
||||||
case "aufs", "devicemapper", "overlay":
|
case "aufs", "devicemapper", "overlay":
|
||||||
v.Warnings = append(v.Warnings, fmt.Sprintf(warnMsg, daemon.graphDriver))
|
v.Warnings = append(v.Warnings, fmt.Sprintf(warnMsg, v.Driver))
|
||||||
}
|
}
|
||||||
|
|
||||||
v.Driver = daemon.graphDriver
|
|
||||||
v.DriverStatus = daemon.imageService.LayerStoreStatus()
|
|
||||||
|
|
||||||
fillDriverWarnings(v)
|
fillDriverWarnings(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue