diff options
author | Sebastiaan van Stijn <github@gone.nl> | 2022-06-05 20:59:52 +0200 |
---|---|---|
committer | Sebastiaan van Stijn <github@gone.nl> | 2022-06-29 19:55:00 +0200 |
commit | b053376741950ff3496fbbb05662de8f1554c47d (patch) | |
tree | 50d9f9cf67994d1510a546f103f19a469181212a /cmd | |
parent | 986725b46610923ee9db91ac02473fb14fb2dbb6 (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.go | 8 |
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...) |