diff --git a/daemon/daemon.go b/daemon/daemon.go index 0569126e17..c88ac32e63 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -370,7 +370,8 @@ func (daemon *Daemon) restore() error { log.Debugf("Restarting containers...") for _, container := range registeredContainers { - if container.hostConfig.RestartPolicy.Name == "always" { + if container.hostConfig.RestartPolicy.Name == "always" || + (container.hostConfig.RestartPolicy.Name == "on-failure" && container.State.ExitCode != 0) { utils.Debugf("Starting container %s", container.ID) if err := container.Start(); err != nil {