network

package
v27.2.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2024 License: Apache-2.0 Imports: 7 Imported by: 3,950

Documentation

Index

Constants

View Source
const (
	// NetworkDefault is a platform-independent alias to choose the platform-specific default network stack.
	NetworkDefault = "default"
	// NetworkHost is the name of the predefined network used when the NetworkMode host is selected (only available on Linux)
	NetworkHost = "host"
	// NetworkNone is the name of the predefined network used when the NetworkMode none is selected (available on both Linux and Windows)
	NetworkNone = "none"
	// NetworkBridge is the name of the default network on Linux
	NetworkBridge = "bridge"
	// NetworkNat is the name of the default network on Windows
	NetworkNat = "nat"
)

Variables

This section is empty.

Functions

func ValidateFilters

func ValidateFilters(filter filters.Args) error

ValidateFilters validates the list of filter args with the available filters.

func ValidateIPAM

func ValidateIPAM(ipam *IPAM, enableIPv6 bool) error

ValidateIPAM checks whether the network's IPAM passed as argument is valid. It returns a joinError of the list of errors found.

Types

type Address

type Address struct {
	Addr      string
	PrefixLen int
}

Address represents an IP address

type ConfigReference

type ConfigReference struct {
	Network string
}

ConfigReference specifies the source which provides a network's configuration

type ConnectOptions

type ConnectOptions struct {
	Container      string
	EndpointConfig *EndpointSettings `json:",omitempty"`
}

ConnectOptions represents the data to be used to connect a container to the network.

type CreateOptions

type CreateOptions struct {
	Driver     string            // Driver is the driver-name used to create the network (e.g. `bridge`, `overlay`)
	Scope      string            // Scope describes the level at which the network exists (e.g. `swarm` for cluster-wide or `local` for machine level).
	EnableIPv6 *bool             `json:",omitempty"` // EnableIPv6 represents whether to enable IPv6.
	IPAM       *IPAM             // IPAM is the network's IP Address Management.
	Internal   bool              // Internal represents if the network is used internal only.
	Attachable bool              // Attachable represents if the global scope is manually attachable by regular containers from workers in swarm mode.
	Ingress    bool              // Ingress indicates the network is providing the routing-mesh for the swarm cluster.
	ConfigOnly bool              // ConfigOnly creates a config-only network. Config-only networks are place-holder networks for network configurations to be used by other networks. ConfigOnly networks cannot be used directly to run containers or services.
	ConfigFrom *ConfigReference  // ConfigFrom specifies the source which will provide the configuration for this network. The specified network must be a config-only network; see [CreateOptions.ConfigOnly].
	Options    map[string]string // Options specifies the network-specific options to use for when creating the network.
	Labels     map[string]string // Labels holds metadata specific to the network being created.
}

CreateOptions holds options to create a network.

type CreateRequest

type CreateRequest struct {
	CreateOptions
	Name string // Name is the requested name of the network.

	// Deprecated: CheckDuplicate is deprecated since API v1.44, but it defaults to true when sent by the client
	// package to older daemons.
	CheckDuplicate *bool `json:",omitempty"`
}

CreateRequest is the request message sent to the server for network create call.

type CreateResponse

type CreateResponse struct {

	// The ID of the created network.
	// Required: true
	ID string `json:"Id"`

	// Warnings encountered when creating the container
	// Required: true
	Warning string `json:"Warning"`
}

CreateResponse NetworkCreateResponse

OK response to NetworkCreate operation swagger:model CreateResponse

type DisconnectOptions

type DisconnectOptions struct {
	Container string
	Force     bool
}

DisconnectOptions represents the data to be used to disconnect a container from the network.

type EndpointIPAMConfig

type EndpointIPAMConfig struct {
	IPv4Address  string   `json:",omitempty"`
	IPv6Address  string   `json:",omitempty"`
	LinkLocalIPs []string `json:",omitempty"`
}

EndpointIPAMConfig represents IPAM configurations for the endpoint

func (*EndpointIPAMConfig) Copy

Copy makes a copy of the endpoint ipam config

func (*EndpointIPAMConfig) IsInRange

func (cfg *EndpointIPAMConfig) IsInRange(v4Subnets []NetworkSubnet, v6Subnets []NetworkSubnet) error

IsInRange checks whether static IP addresses are valid in a specific network.

func (*EndpointIPAMConfig) Validate

func (cfg *EndpointIPAMConfig) Validate() error

Validate checks whether cfg is valid.

type EndpointResource

type EndpointResource struct {
	Name        string
	EndpointID  string
	MacAddress  string
	IPv4Address string
	IPv6Address string
}

EndpointResource contains network resources allocated and used for a container in a network.

type EndpointSettings

type EndpointSettings struct {
	// Configurations
	IPAMConfig *EndpointIPAMConfig
	Links      []string
	Aliases    []string // Aliases holds the list of extra, user-specified DNS names for this endpoint.
	// MacAddress may be used to specify a MAC address when the container is created.
	// Once the container is running, it becomes operational data (it may contain a
	// generated address).
	MacAddress string
	DriverOpts map[string]string
	// Operational data
	NetworkID           string
	EndpointID          string
	Gateway             string
	IPAddress           string
	IPPrefixLen         int
	IPv6Gateway         string
	GlobalIPv6Address   string
	GlobalIPv6PrefixLen int
	// DNSNames holds all the (non fully qualified) DNS names associated to this endpoint. First entry is used to
	// generate PTR records.
	DNSNames []string
}

EndpointSettings stores the network endpoint details

func (*EndpointSettings) Copy

func (es *EndpointSettings) Copy() *EndpointSettings

Copy makes a deep copy of `EndpointSettings`

type IPAM

type IPAM struct {
	Driver  string
	Options map[string]string // Per network IPAM driver options
	Config  []IPAMConfig
}

IPAM represents IP Address Management

type IPAMConfig

type IPAMConfig struct {
	Subnet     string            `json:",omitempty"`
	IPRange    string            `json:",omitempty"`
	Gateway    string            `json:",omitempty"`
	AuxAddress map[string]string `json:"AuxiliaryAddresses,omitempty"`
}

IPAMConfig represents IPAM configurations

type Inspect

type Inspect struct {
	Name       string                      // Name is the name of the network
	ID         string                      `json:"Id"` // ID uniquely identifies a network on a single machine
	Created    time.Time                   // Created is the time the network created
	Scope      string                      // Scope describes the level at which the network exists (e.g. `swarm` for cluster-wide or `local` for machine level)
	Driver     string                      // Driver is the Driver name used to create the network (e.g. `bridge`, `overlay`)
	EnableIPv6 bool                        // EnableIPv6 represents whether to enable IPv6
	IPAM       IPAM                        // IPAM is the network's IP Address Management
	Internal   bool                        // Internal represents if the network is used internal only
	Attachable bool                        // Attachable represents if the global scope is manually attachable by regular containers from workers in swarm mode.
	Ingress    bool                        // Ingress indicates the network is providing the routing-mesh for the swarm cluster.
	ConfigFrom ConfigReference             // ConfigFrom specifies the source which will provide the configuration for this network.
	ConfigOnly bool                        // ConfigOnly networks are place-holder networks for network configurations to be used by other networks. ConfigOnly networks cannot be used directly to run containers or services.
	Containers map[string]EndpointResource // Containers contains endpoints belonging to the network
	Options    map[string]string           // Options holds the network specific options to use for when creating the network
	Labels     map[string]string           // Labels holds metadata specific to the network being created
	Peers      []PeerInfo                  `json:",omitempty"` // List of peer nodes for an overlay network
	Services   map[string]ServiceInfo      `json:",omitempty"`
}

Inspect is the body of the "get network" http response message.

type InspectOptions

type InspectOptions struct {
	Scope   string
	Verbose bool
}

InspectOptions holds parameters to inspect network.

type ListOptions

type ListOptions struct {
	Filters filters.Args
}

ListOptions holds parameters to filter the list of networks with.

type NetworkSubnet

type NetworkSubnet interface {
	// Contains checks whether the NetworkSubnet contains [addr].
	Contains(addr net.IP) bool
	// IsStatic checks whether the subnet was statically allocated (ie. user-defined).
	IsStatic() bool
}

NetworkSubnet describes a user-defined subnet for a specific network. It's only used to validate if an EndpointIPAMConfig is valid for a specific network.

type NetworkingConfig

type NetworkingConfig struct {
	EndpointsConfig map[string]*EndpointSettings // Endpoint configs for each connecting network
}

NetworkingConfig represents the container's networking configuration for each of its interfaces Carries the networking configs specified in the `docker run` and `docker network connect` commands

type PeerInfo

type PeerInfo struct {
	Name string
	IP   string
}

PeerInfo represents one peer of an overlay network

type PruneReport

type PruneReport struct {
	NetworksDeleted []string
}

PruneReport contains the response for Engine API: POST "/networks/prune"

type ServiceInfo

type ServiceInfo struct {
	VIP          string
	Ports        []string
	LocalLBIndex int
	Tasks        []Task
}

ServiceInfo represents service parameters with the list of service's tasks

type Summary

type Summary = Inspect

Summary is used as response when listing networks. It currently is an alias for Inspect, but may diverge in the future, as not all information may be included when listing networks.

type Task

type Task struct {
	Name       string
	EndpointID string
	EndpointIP string
	Info       map[string]string
}

Task carries the information about one backend task

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL