From f408b4f4639b7c987c93b26174fccfcc513519e4 Mon Sep 17 00:00:00 2001 From: Qiang Huang Date: Tue, 15 Dec 2015 08:42:26 +0800 Subject: [PATCH] Adapt container settings when start `adaptContainerSettings` is growing up, new it's only called when create. It'll be a problem that old containers will never have chance to adapt the latest rule. `HostConfig` of these containers will be obsoleted. Add this calling to start to avoid problems like #18550 and avoid such backward compatability in the future. Signed-off-by: Qiang Huang --- daemon/start.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/daemon/start.go b/daemon/start.go index 0f30d487b1..0e4cef5d14 100644 --- a/daemon/start.go +++ b/daemon/start.go @@ -30,9 +30,6 @@ func (daemon *Daemon) ContainerStart(name string, hostConfig *runconfig.HostConf // creating a container, not during start. if hostConfig != nil { logrus.Warn("DEPRECATED: Setting host configuration options when the container starts is deprecated and will be removed in Docker 1.12") - if err := daemon.adaptContainerSettings(hostConfig, false); err != nil { - return err - } if err := daemon.setHostConfig(container, hostConfig); err != nil { return err } @@ -49,6 +46,11 @@ func (daemon *Daemon) ContainerStart(name string, hostConfig *runconfig.HostConf if _, err = daemon.verifyContainerSettings(container.HostConfig, nil); err != nil { return err } + // Adapt for old containers in case we have updates in this function and + // old containers never have chance to call the new function in create stage. + if err := daemon.adaptContainerSettings(container.HostConfig, false); err != nil { + return err + } if err := daemon.containerStart(container); err != nil { return err