aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorSebastiaan van Stijn <github@gone.nl>2022-06-05 20:59:52 +0200
committerSebastiaan van Stijn <github@gone.nl>2022-06-29 19:55:00 +0200
commitb053376741950ff3496fbbb05662de8f1554c47d (patch)
tree50d9f9cf67994d1510a546f103f19a469181212a /cmd
parent986725b46610923ee9db91ac02473fb14fb2dbb6 (diff)
cmd/dockerd: reserve port before creating sockets/listeners
This prevents creating a socket and touching the filesystem before trying to use a port that was already in use by a container. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/dockerd/daemon.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/cmd/dockerd/daemon.go b/cmd/dockerd/daemon.go
index 5c8eb1df73..6d1fa3ec63 100644
--- a/cmd/dockerd/daemon.go
+++ b/cmd/dockerd/daemon.go
@@ -719,16 +719,16 @@ func loadListeners(cli *DaemonCli, serverConfig *apiserver.Config) ([]string, er
}
}
}
- ls, err := listeners.Init(proto, addr, serverConfig.SocketGroup, serverConfig.TLSConfig)
- if err != nil {
- return nil, err
- }
// If we're binding to a TCP port, make sure that a container doesn't try to use it.
if proto == "tcp" {
if err := allocateDaemonPort(addr); err != nil {
return nil, err
}
}
+ ls, err := listeners.Init(proto, addr, serverConfig.SocketGroup, serverConfig.TLSConfig)
+ if err != nil {
+ return nil, err
+ }
logrus.Debugf("Listener created for HTTP on %s (%s)", proto, addr)
hosts = append(hosts, protoAddrParts[1])
cli.api.Accept(addr, ls...)