code: func (w *ContainerConfigWrapper) getHostConfig() *container.HostConfig {
  	hc := w.HostConfig
  
  	if hc == nil && w.InnerHostConfig != nil {
  		hc = w.InnerHostConfig
  	} else if w.InnerHostConfig != nil {
  		if hc.Memory != 0 && w.InnerHostConfig.Memory == 0 {
  			w.InnerHostConfig.Memory = hc.Memory
  		}
  		if hc.MemorySwap != 0 && w.InnerHostConfig.MemorySwap == 0 {
  			w.InnerHostConfig.MemorySwap = hc.MemorySwap
  		}
  		if hc.CPUShares != 0 && w.InnerHostConfig.CPUShares == 0 {
  			w.InnerHostConfig.CPUShares = hc.CPUShares
  		}
  		if hc.CpusetCpus != "" && w.InnerHostConfig.CpusetCpus == "" {
  			w.InnerHostConfig.CpusetCpus = hc.CpusetCpus
  		}
  
  		if hc.VolumeDriver != "" && w.InnerHostConfig.VolumeDriver == "" {
  			w.InnerHostConfig.VolumeDriver = hc.VolumeDriver
  		}
  
  		hc = w.InnerHostConfig
  	}
  
  	if hc != nil {
  		if w.Cpuset != "" && hc.CpusetCpus == "" {
  			hc.CpusetCpus = w.Cpuset
  		}
  	}
  
  	// Make sure NetworkMode has an acceptable value. We do this to ensure
  	// backwards compatible API behavior.
  	SetDefaultNetModeIfBlank(hc)
  
  	return hc
  }
docs: // getHostConfig gets the HostConfig of the Config.
  // It's mostly there to handle Deprecated fields of the ContainerConfigWrapper