we store the active sandbox after daemon.containerd.Restore, but there
is a chance the `Restore` will set the container to exit see
(https://github.com/docker/docker/blob/master/libcontainerd/client_linux.go#L469).
so we should check if the container is really running before add it to
activesandbox.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
| ... | ... |
@@ -179,7 +179,7 @@ func (daemon *Daemon) restore() error {
|
| 179 | 179 |
logrus.Errorf("Failed to restore with containerd: %q", err)
|
| 180 | 180 |
return |
| 181 | 181 |
} |
| 182 |
- if !c.HostConfig.NetworkMode.IsContainer() {
|
|
| 182 |
+ if !c.HostConfig.NetworkMode.IsContainer() && c.IsRunning() {
|
|
| 183 | 183 |
options, err := daemon.buildSandboxOptions(c) |
| 184 | 184 |
if err != nil {
|
| 185 | 185 |
logrus.Warnf("Failed build sandbox option to restore container %s: %v", c.ID, err)
|