소스 검색

daemon: don't prepare mountpoint for restart container

The restart container has already prepared the mountpoint, there is
no need to do that again. This can speed up the daemon start if
the restart container has a volume and the volume driver is not
available.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
Lei Jitang 9 년 전
부모
커밋
0feeab2e43
1개의 변경된 파일7개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      daemon/daemon.go

+ 7 - 0
daemon/daemon.go

@@ -376,6 +376,13 @@ func (daemon *Daemon) restore() error {
 	// This must be run after any containers with a restart policy so that containerized plugins
 	// can have a chance to be running before we try to initialize them.
 	for _, c := range containers {
+		// if the container has restart policy, do not
+		// prepare the mountpoints since it has been done on restarting.
+		// This is to speed up the daemon start when a restart container
+		// has a volume and the volume dirver is not available.
+		if _, ok := restartContainers[c]; ok {
+			continue
+		}
 		group.Add(1)
 		go func(c *container.Container) {
 			defer group.Done()