code: func (daemon *Daemon) Reload(conf *config.Config) (err error) {
  	daemon.configStore.Lock()
  	attributes := map[string]string{}
  
  	defer func() {
  		jsonString, _ := json.Marshal(daemon.configStore)
  
  		// we're unlocking here, because
  		// LogDaemonEventWithAttributes() -> SystemInfo() -> GetAllRuntimes()
  		// holds that lock too.
  		daemon.configStore.Unlock()
  		if err == nil {
  			logrus.Infof("Reloaded configuration: %s", jsonString)
  			daemon.LogDaemonEventWithAttributes("reload", attributes)
  		}
  	}()
  
  	if err := daemon.reloadPlatform(conf, attributes); err != nil {
  		return err
  	}
  	daemon.reloadDebug(conf, attributes)
  	daemon.reloadMaxConcurrentDownloadsAndUploads(conf, attributes)
  	daemon.reloadShutdownTimeout(conf, attributes)
  	daemon.reloadFeatures(conf, attributes)
  
  	if err := daemon.reloadClusterDiscovery(conf, attributes); err != nil {
  		return err
  	}
  	if err := daemon.reloadLabels(conf, attributes); err != nil {
  		return err
  	}
  	if err := daemon.reloadAllowNondistributableArtifacts(conf, attributes); err != nil {
  		return err
  	}
  	if err := daemon.reloadInsecureRegistries(conf, attributes); err != nil {
  		return err
  	}
  	if err := daemon.reloadRegistryMirrors(conf, attributes); err != nil {
  		return err
  	}
  	if err := daemon.reloadLiveRestore(conf, attributes); err != nil {
  		return err
  	}
  	return daemon.reloadNetworkDiagnosticPort(conf, attributes)
  }
docs: // Reload reads configuration changes and modifies the
  // daemon according to those changes.
  // These are the settings that Reload changes:
  // - Platform runtime
  // - Daemon debug log level
  // - Daemon max concurrent downloads
  // - Daemon max concurrent uploads
  // - Daemon shutdown timeout (in seconds)
  // - Cluster discovery (reconfigure and restart)
  // - Daemon labels
  // - Insecure registries
  // - Registry mirrors
  // - Daemon live restore