diff --git a/daemon/create.go b/daemon/create.go index 79001c6a0..9b576dd9a 100644 --- a/daemon/create.go +++ b/daemon/create.go @@ -20,6 +20,7 @@ func (daemon *Daemon) ContainerCreate(name string, config *runconfig.Config, hos return "", nil, fmt.Errorf("Config cannot be empty in order to create a container") } + daemon.adaptContainerSettings(hostConfig) warnings, err := daemon.verifyContainerSettings(hostConfig, config) if err != nil { return "", warnings, err diff --git a/daemon/daemon_unix.go b/daemon/daemon_unix.go index d3197e3c3..83adea9f9 100644 --- a/daemon/daemon_unix.go +++ b/daemon/daemon_unix.go @@ -117,6 +117,16 @@ func checkKernel() error { return nil } +func (daemon *Daemon) adaptContainerSettings(hostConfig *runconfig.HostConfig) { + if hostConfig == nil { + return + } + if hostConfig.Memory > 0 && hostConfig.MemorySwap == 0 { + // By default, MemorySwap is set to twice the size of Memory. + hostConfig.MemorySwap = hostConfig.Memory * 2 + } +} + func (daemon *Daemon) verifyContainerSettings(hostConfig *runconfig.HostConfig, config *runconfig.Config) ([]string, error) { var warnings []string diff --git a/daemon/daemon_windows.go b/daemon/daemon_windows.go index 3e160775b..10bb039d5 100644 --- a/daemon/daemon_windows.go +++ b/daemon/daemon_windows.go @@ -73,6 +73,10 @@ func checkKernel() error { return nil } +func (daemon *Daemon) adaptContainerSettings(hostConfig *runconfig.HostConfig) { + // TODO Windows. +} + func (daemon *Daemon) verifyContainerSettings(hostConfig *runconfig.HostConfig, config *runconfig.Config) ([]string, error) { // TODO Windows. Verifications TBC return nil, nil