package portallocator

import "github.com/docker/docker/libnetwork/portallocator"

Index

Functions

func GetPortRange

func GetPortRange() (start, end uint16)

GetPortRange returns the PortAllocator's default port range.

This function is for internal use in tests, and must not be used for other purposes.

Types

type PortAllocator

type PortAllocator struct {
	// contains filtered or unexported fields
}

PortAllocator manages the transport ports database

func Get

func Get() *PortAllocator

Get returns the PortAllocator

func (*PortAllocator) ReleaseAll

func (p *PortAllocator) ReleaseAll()

ReleaseAll releases all ports for all ips.

func (*PortAllocator) ReleasePort

func (p *PortAllocator) ReleasePort(ip net.IP, proto string, port int)

ReleasePort releases port from global ports pool for specified ip and proto.

func (*PortAllocator) RequestPort

func (p *PortAllocator) RequestPort(ip net.IP, proto string, port int) (int, error)

RequestPort requests new port from global ports pool for specified ip and proto. If port is 0 it returns first free port. Otherwise it checks port availability in proto's pool and returns that port or error if port is already busy.

func (*PortAllocator) RequestPortInRange

func (p *PortAllocator) RequestPortInRange(ip net.IP, proto string, portStart, portEnd int) (int, error)

RequestPortInRange is equivalent to PortAllocator.RequestPortsInRange with a single IP address. If ip is nil, a port is instead requested for the default IP (0.0.0.0).

func (*PortAllocator) RequestPortsInRange

func (p *PortAllocator) RequestPortsInRange(ips []net.IP, proto string, portStart, portEnd int) (int, error)

RequestPortsInRange requests new ports from the global ports pool, for proto and each of ips. If portStart and portEnd are 0 it returns the first free port in the default ephemeral range. If portStart != portEnd it returns the first free port in the requested range. Otherwise, (portStart == portEnd) it checks port availability in the requested proto's port-pool and returns that port or error if port is already busy.

Source Files

portallocator.go portallocator_unix.go

Version
v28.0.3+incompatible
Published
Mar 25, 2025
Platform
js/wasm
Imports
7 packages
Last checked
3 minutes ago

Tools for package owners.