Documentation ¶
Overview ¶
Package libnetwork is a generated protocol buffer package. It is generated from these files: agent.proto It has these top-level messages: EndpointRecord PortConfig
Package libnetwork provides the basic functionality and extension points to create network namespaces and allocate interfaces for containers to use.
networkType := "bridge" // Create a new controller instance driverOptions := options.Generic{} genericOption := make(map[string]interface{}) genericOption[netlabel.GenericData] = driverOptions controller, err := libnetwork.New(config.OptionDriverConfig(networkType, genericOption)) if err != nil { return } // Create a network for containers to join. // NewNetwork accepts Variadic optional arguments that libnetwork and Drivers can make use of network, err := controller.NewNetwork(networkType, "network1", "") if err != nil { return } // For each new container: allocate IP and interfaces. The returned network // settings will be used for container infos (inspect and such), as well as // iptables rules for port publishing. This info is contained or accessible // from the returned endpoint. ep, err := network.CreateEndpoint("Endpoint1") if err != nil { return } // Create the sandbox for the container. // NewSandbox accepts Variadic optional arguments which libnetwork can use. sbx, err := controller.NewSandbox("container1", libnetwork.OptionHostname("test"), libnetwork.OptionDomainname("docker.io")) // A sandbox can join the endpoint via the join api. err = ep.Join(sbx) if err != nil { return }
Index ¶
- Variables
- func SetExternalKey(controllerID string, containerID string, key string) error
- type ActiveContainerError
- type ActiveEndpointsError
- type ByTime
- type DNSBackend
- type Endpoint
- type EndpointInfo
- type EndpointOption
- func CreateOptionAlias(name string, alias string) EndpointOption
- func CreateOptionAnonymous() EndpointOption
- func CreateOptionDNS(dns []string) EndpointOption
- func CreateOptionDisableResolution() EndpointOption
- func CreateOptionExposedPorts(exposedPorts []types.TransportPort) EndpointOption
- func CreateOptionIpam(ipV4, ipV6 net.IP, llIPs []net.IP, ipamOptions map[string]string) EndpointOption
- func CreateOptionMyAlias(alias string) EndpointOption
- func CreateOptionPortMapping(portBindings []types.PortBinding) EndpointOption
- func CreateOptionService(name, id string, vip net.IP, ingressPorts []*PortConfig, aliases []string) EndpointOption
- func EndpointOptionGeneric(generic map[string]interface{}) EndpointOption
- func JoinOptionPriority(ep Endpoint, prio int) EndpointOption
- type EndpointRecord
- func (*EndpointRecord) Descriptor() ([]byte, []int)
- func (m *EndpointRecord) GetIngressPorts() []*PortConfig
- func (this *EndpointRecord) GoString() string
- func (m *EndpointRecord) Marshal() (data []byte, err error)
- func (m *EndpointRecord) MarshalTo(data []byte) (int, error)
- func (*EndpointRecord) ProtoMessage()
- func (m *EndpointRecord) Reset()
- func (m *EndpointRecord) Size() (n int)
- func (this *EndpointRecord) String() string
- func (m *EndpointRecord) Unmarshal(data []byte) error
- type EndpointWalker
- type ErrInvalidConfigFile
- type ErrInvalidID
- type ErrInvalidJoin
- type ErrInvalidName
- type ErrInvalidNetworkDriver
- type ErrNoContainer
- type ErrNoSuchEndpoint
- type ErrNoSuchNetwork
- type InterfaceInfo
- type InvalidContainerIDError
- type IpamConf
- type IpamInfo
- type ManagerRedirectError
- type Network
- type NetworkController
- type NetworkInfo
- type NetworkNameError
- type NetworkOption
- func NetworkOptionDeferIPv6Alloc(enable bool) NetworkOption
- func NetworkOptionDriverOpts(opts map[string]string) NetworkOption
- func NetworkOptionDynamic() NetworkOption
- func NetworkOptionEnableIPv6(enableIPv6 bool) NetworkOption
- func NetworkOptionGeneric(generic map[string]interface{}) NetworkOption
- func NetworkOptionIngress() NetworkOption
- func NetworkOptionInternalNetwork() NetworkOption
- func NetworkOptionIpam(ipamDriver string, addrSpace string, ipV4 []*IpamConf, ipV6 []*IpamConf, ...) NetworkOption
- func NetworkOptionLabels(labels map[string]string) NetworkOption
- func NetworkOptionPersist(persist bool) NetworkOption
- type NetworkTypeError
- type NetworkWalker
- type PortConfig
- func (*PortConfig) Descriptor() ([]byte, []int)
- func (this *PortConfig) GoString() string
- func (m *PortConfig) Marshal() (data []byte, err error)
- func (m *PortConfig) MarshalTo(data []byte) (int, error)
- func (*PortConfig) ProtoMessage()
- func (m *PortConfig) Reset()
- func (m *PortConfig) Size() (n int)
- func (this *PortConfig) String() string
- func (m *PortConfig) Unmarshal(data []byte) error
- type PortConfig_Protocol
- type Resolver
- type Sandbox
- type SandboxOption
- func OptionDNS(dns string) SandboxOption
- func OptionDNSOptions(options string) SandboxOption
- func OptionDNSSearch(search string) SandboxOption
- func OptionDomainname(name string) SandboxOption
- func OptionExposedPorts(exposedPorts []types.TransportPort) SandboxOption
- func OptionExtraHost(name string, IP string) SandboxOption
- func OptionGeneric(generic map[string]interface{}) SandboxOption
- func OptionHostname(name string) SandboxOption
- func OptionHostsPath(path string) SandboxOption
- func OptionIngress() SandboxOption
- func OptionOriginHostsPath(path string) SandboxOption
- func OptionOriginResolvConfPath(path string) SandboxOption
- func OptionParentUpdate(cid string, name, ip string) SandboxOption
- func OptionPortMapping(portBindings []types.PortBinding) SandboxOption
- func OptionResolvConfPath(path string) SandboxOption
- func OptionUseDefaultSandbox() SandboxOption
- func OptionUseExternalKey() SandboxOption
- type SandboxWalker
- type UnknownEndpointError
- type UnknownNetworkError
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidLengthAgent = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowAgent = fmt.Errorf("proto: integer overflow") )
var PortConfig_Protocol_name = map[int32]string{
0: "TCP",
1: "UDP",
}
var PortConfig_Protocol_value = map[string]int32{
"TCP": 0,
"UDP": 1,
}
Functions ¶
Types ¶
type ActiveContainerError ¶
type ActiveContainerError struct {
// contains filtered or unexported fields
}
ActiveContainerError is returned when an endpoint is deleted which has active containers attached to it.
func (*ActiveContainerError) Error ¶
func (ace *ActiveContainerError) Error() string
func (*ActiveContainerError) Forbidden ¶
func (ace *ActiveContainerError) Forbidden()
Forbidden denotes the type of this error
type ActiveEndpointsError ¶
type ActiveEndpointsError struct {
// contains filtered or unexported fields
}
ActiveEndpointsError is returned when a network is deleted which has active endpoints in it.
func (*ActiveEndpointsError) Error ¶
func (aee *ActiveEndpointsError) Error() string
func (*ActiveEndpointsError) Forbidden ¶
func (aee *ActiveEndpointsError) Forbidden()
Forbidden denotes the type of this error
type ByTime ¶
type ByTime []*types.EncryptionKey
ByTime implements sort.Interface for []*types.EncryptionKey based on the LamportTime field.
type DNSBackend ¶
type DNSBackend interface { // ResolveName resolves a service name to an IPv4 or IPv6 address by searching // the networks the sandbox is connected to. For IPv6 queries, second return // value will be true if the name exists in docker domain but doesn't have an // IPv6 address. Such queries shouldn't be forwarded to external nameservers. ResolveName(name string, iplen int) ([]net.IP, bool) // ResolveIP returns the service name for the passed in IP. IP is in reverse dotted // notation; the format used for DNS PTR records ResolveIP(name string) string // ResolveService returns all the backend details about the containers or hosts // backing a service. Its purpose is to satisfy an SRV query ResolveService(name string) ([]*net.SRV, []net.IP) // ExecFunc allows a function to be executed in the context of the backend // on behalf of the resolver. ExecFunc(f func()) error //NdotsSet queries the backends ndots dns option settings NdotsSet() bool }
DNSBackend represents a backend DNS resolver used for DNS name resolution. All the queries to the resolver are forwared to the backend resolver.
type Endpoint ¶
type Endpoint interface { // A system generated id for this endpoint. ID() string // Name returns the name of this endpoint. Name() string // Network returns the name of the network to which this endpoint is attached. Network() string // Join joins the sandbox to the endpoint and populates into the sandbox // the network resources allocated for the endpoint. Join(sandbox Sandbox, options ...EndpointOption) error // Leave detaches the network resources populated in the sandbox. Leave(sandbox Sandbox, options ...EndpointOption) error // Return certain operational data belonging to this endpoint Info() EndpointInfo // DriverInfo returns a collection of driver operational data related to this endpoint retrieved from the driver DriverInfo() (map[string]interface{}, error) // Delete and detaches this endpoint from the network. Delete(force bool) error }
Endpoint represents a logical connection between a network and a sandbox.
type EndpointInfo ¶
type EndpointInfo interface { // Iface returns InterfaceInfo, go interface that can be used // to get more information on the interface which was assigned to // the endpoint by the driver. This can be used after the // endpoint has been created. Iface() InterfaceInfo // Gateway returns the IPv4 gateway assigned by the driver. // This will only return a valid value if a container has joined the endpoint. Gateway() net.IP // GatewayIPv6 returns the IPv6 gateway assigned by the driver. // This will only return a valid value if a container has joined the endpoint. GatewayIPv6() net.IP // StaticRoutes returns the list of static routes configured by the network // driver when the container joins a network StaticRoutes() []*types.StaticRoute // Sandbox returns the attached sandbox if there, nil otherwise. Sandbox() Sandbox }
EndpointInfo provides an interface to retrieve network resources bound to the endpoint.
type EndpointOption ¶
type EndpointOption func(ep *endpoint)
EndpointOption is an option setter function type used to pass various options to Network and Endpoint interfaces methods. The various setter functions of type EndpointOption are provided by libnetwork, they look like <Create|Join|Leave>Option[...](...)
func CreateOptionAlias ¶
func CreateOptionAlias(name string, alias string) EndpointOption
CreateOptionAlias function returns an option setter for setting endpoint alias
func CreateOptionAnonymous ¶
func CreateOptionAnonymous() EndpointOption
CreateOptionAnonymous function returns an option setter for setting this endpoint as anonymous
func CreateOptionDNS ¶
func CreateOptionDNS(dns []string) EndpointOption
CreateOptionDNS function returns an option setter for dns entry option to be passed to container Create method.
func CreateOptionDisableResolution ¶
func CreateOptionDisableResolution() EndpointOption
CreateOptionDisableResolution function returns an option setter to indicate this endpoint doesn't want embedded DNS server functionality
func CreateOptionExposedPorts ¶
func CreateOptionExposedPorts(exposedPorts []types.TransportPort) EndpointOption
CreateOptionExposedPorts function returns an option setter for the container exposed ports option to be passed to network.CreateEndpoint() method.
func CreateOptionIpam ¶
func CreateOptionIpam(ipV4, ipV6 net.IP, llIPs []net.IP, ipamOptions map[string]string) EndpointOption
CreateOptionIpam function returns an option setter for the ipam configuration for this endpoint
func CreateOptionMyAlias ¶
func CreateOptionMyAlias(alias string) EndpointOption
CreateOptionMyAlias function returns an option setter for setting endpoint's self alias
func CreateOptionPortMapping ¶
func CreateOptionPortMapping(portBindings []types.PortBinding) EndpointOption
CreateOptionPortMapping function returns an option setter for the mapping ports option to be passed to network.CreateEndpoint() method.
func CreateOptionService ¶
func CreateOptionService(name, id string, vip net.IP, ingressPorts []*PortConfig, aliases []string) EndpointOption
CreateOptionService function returns an option setter for setting service binding configuration
func EndpointOptionGeneric ¶
func EndpointOptionGeneric(generic map[string]interface{}) EndpointOption
EndpointOptionGeneric function returns an option setter for a Generic option defined in a Dictionary of Key-Value pair
func JoinOptionPriority ¶
func JoinOptionPriority(ep Endpoint, prio int) EndpointOption
JoinOptionPriority function returns an option setter for priority option to be passed to the endpoint.Join() method.
type EndpointRecord ¶
type EndpointRecord struct { // Name of the endpoint Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Service name of the service to which this endpoint belongs. ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` // Service ID of the service to which this endpoint belongs. ServiceID string `protobuf:"bytes,3,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` // Virtual IP of the service to which this endpoint belongs. VirtualIP string `protobuf:"bytes,4,opt,name=virtual_ip,json=virtualIp,proto3" json:"virtual_ip,omitempty"` // IP assigned to this endpoint. EndpointIP string `protobuf:"bytes,5,opt,name=endpoint_ip,json=endpointIp,proto3" json:"endpoint_ip,omitempty"` // IngressPorts exposed by the service to which this endpoint belongs. IngressPorts []*PortConfig `protobuf:"bytes,6,rep,name=ingress_ports,json=ingressPorts" json:"ingress_ports,omitempty"` // A list of aliases which are alternate names for the service Aliases []string `protobuf:"bytes,7,rep,name=aliases" json:"aliases,omitempty"` // List of aliases task specific aliases TaskAliases []string `protobuf:"bytes,8,rep,name=task_aliases,json=taskAliases" json:"task_aliases,omitempty"` }
EndpointRecord specifies all the endpoint specific information that needs to gossiped to nodes participating in the network.
func (*EndpointRecord) Descriptor ¶
func (*EndpointRecord) Descriptor() ([]byte, []int)
func (*EndpointRecord) GetIngressPorts ¶
func (m *EndpointRecord) GetIngressPorts() []*PortConfig
func (*EndpointRecord) GoString ¶
func (this *EndpointRecord) GoString() string
func (*EndpointRecord) Marshal ¶
func (m *EndpointRecord) Marshal() (data []byte, err error)
func (*EndpointRecord) ProtoMessage ¶
func (*EndpointRecord) ProtoMessage()
func (*EndpointRecord) Reset ¶
func (m *EndpointRecord) Reset()
func (*EndpointRecord) Size ¶
func (m *EndpointRecord) Size() (n int)
func (*EndpointRecord) String ¶
func (this *EndpointRecord) String() string
func (*EndpointRecord) Unmarshal ¶
func (m *EndpointRecord) Unmarshal(data []byte) error
type EndpointWalker ¶
EndpointWalker is a client provided function which will be used to walk the Endpoints. When the function returns true, the walk will stop.
type ErrInvalidConfigFile ¶
type ErrInvalidConfigFile string
ErrInvalidConfigFile type is returned when an invalid LibNetwork config file is detected
func (ErrInvalidConfigFile) Error ¶
func (cf ErrInvalidConfigFile) Error() string
type ErrInvalidID ¶
type ErrInvalidID string
ErrInvalidID is returned when a query-by-id method is being invoked with an empty id parameter
func (ErrInvalidID) BadRequest ¶
func (ii ErrInvalidID) BadRequest()
BadRequest denotes the type of this error
func (ErrInvalidID) Error ¶
func (ii ErrInvalidID) Error() string
type ErrInvalidJoin ¶
type ErrInvalidJoin struct{}
ErrInvalidJoin is returned if a join is attempted on an endpoint which already has a container joined.
func (ErrInvalidJoin) BadRequest ¶
func (ij ErrInvalidJoin) BadRequest()
BadRequest denotes the type of this error
func (ErrInvalidJoin) Error ¶
func (ij ErrInvalidJoin) Error() string
type ErrInvalidName ¶
type ErrInvalidName string
ErrInvalidName is returned when a query-by-name or resource create method is invoked with an empty name parameter
func (ErrInvalidName) BadRequest ¶
func (in ErrInvalidName) BadRequest()
BadRequest denotes the type of this error
func (ErrInvalidName) Error ¶
func (in ErrInvalidName) Error() string
type ErrInvalidNetworkDriver ¶
type ErrInvalidNetworkDriver string
ErrInvalidNetworkDriver is returned if an invalid driver name is passed.
func (ErrInvalidNetworkDriver) BadRequest ¶
func (ind ErrInvalidNetworkDriver) BadRequest()
BadRequest denotes the type of this error
func (ErrInvalidNetworkDriver) Error ¶
func (ind ErrInvalidNetworkDriver) Error() string
type ErrNoContainer ¶
type ErrNoContainer struct{}
ErrNoContainer is returned when the endpoint has no container attached to it.
func (ErrNoContainer) Error ¶
func (nc ErrNoContainer) Error() string
func (ErrNoContainer) Maskable ¶
func (nc ErrNoContainer) Maskable()
Maskable denotes the type of this error
type ErrNoSuchEndpoint ¶
type ErrNoSuchEndpoint string
ErrNoSuchEndpoint is returned when an endpoint query finds no result
func (ErrNoSuchEndpoint) Error ¶
func (nse ErrNoSuchEndpoint) Error() string
func (ErrNoSuchEndpoint) NotFound ¶
func (nse ErrNoSuchEndpoint) NotFound()
NotFound denotes the type of this error
type ErrNoSuchNetwork ¶
type ErrNoSuchNetwork string
ErrNoSuchNetwork is returned when a network query finds no result
func (ErrNoSuchNetwork) Error ¶
func (nsn ErrNoSuchNetwork) Error() string
func (ErrNoSuchNetwork) NotFound ¶
func (nsn ErrNoSuchNetwork) NotFound()
NotFound denotes the type of this error
type InterfaceInfo ¶
type InterfaceInfo interface { // MacAddress returns the MAC address assigned to the endpoint. MacAddress() net.HardwareAddr // Address returns the IPv4 address assigned to the endpoint. Address() *net.IPNet // AddressIPv6 returns the IPv6 address assigned to the endpoint. AddressIPv6() *net.IPNet // LinkLocalAddresses returns the list of link-local (IPv4/IPv6) addresses assigned to the endpoint. LinkLocalAddresses() []*net.IPNet }
InterfaceInfo provides an interface to retrieve interface addresses bound to the endpoint.
type InvalidContainerIDError ¶
type InvalidContainerIDError string
InvalidContainerIDError is returned when an invalid container id is passed in Join/Leave
func (InvalidContainerIDError) BadRequest ¶
func (id InvalidContainerIDError) BadRequest()
BadRequest denotes the type of this error
func (InvalidContainerIDError) Error ¶
func (id InvalidContainerIDError) Error() string
type IpamConf ¶
type IpamConf struct { // The master address pool for containers and network interfaces PreferredPool string // A subset of the master pool. If specified, // this becomes the container pool SubPool string // Preferred Network Gateway address (optional) Gateway string // Auxiliary addresses for network driver. Must be within the master pool. // libnetwork will reserve them if they fall into the container pool AuxAddresses map[string]string }
IpamConf contains all the ipam related configurations for a network
type IpamInfo ¶
IpamInfo contains all the ipam related operational info for a network
func (*IpamInfo) MarshalJSON ¶
MarshalJSON encodes IpamInfo into json message
func (*IpamInfo) UnmarshalJSON ¶
UnmarshalJSON decodes json message into PoolData
type ManagerRedirectError ¶
type ManagerRedirectError string
ManagerRedirectError is returned when the request should be redirected to Manager
func (ManagerRedirectError) Error ¶
func (mr ManagerRedirectError) Error() string
func (ManagerRedirectError) Maskable ¶
func (mr ManagerRedirectError) Maskable()
Maskable denotes the type of this error
type Network ¶
type Network interface { // A user chosen name for this network. Name() string // A system generated id for this network. ID() string // The type of network, which corresponds to its managing driver. Type() string // Create a new endpoint to this network symbolically identified by the // specified unique name. The options parameter carry driver specific options. CreateEndpoint(name string, options ...EndpointOption) (Endpoint, error) // Delete the network. Delete() error // Endpoints returns the list of Endpoint(s) in this network. Endpoints() []Endpoint // WalkEndpoints uses the provided function to walk the Endpoints WalkEndpoints(walker EndpointWalker) // EndpointByName returns the Endpoint which has the passed name. If not found, the error ErrNoSuchEndpoint is returned. EndpointByName(name string) (Endpoint, error) // EndpointByID returns the Endpoint which has the passed id. If not found, the error ErrNoSuchEndpoint is returned. EndpointByID(id string) (Endpoint, error) // Return certain operational data belonging to this network Info() NetworkInfo }
A Network represents a logical connectivity zone that containers may join using the Link method. A Network is managed by a specific driver.
type NetworkController ¶
type NetworkController interface { // ID provides a unique identity for the controller ID() string // BuiltinDrivers returns list of builtin drivers BuiltinDrivers() []string // Config method returns the bootup configuration for the controller Config() config.Config // Create a new network. The options parameter carries network specific options. NewNetwork(networkType, name string, id string, options ...NetworkOption) (Network, error) // Networks returns the list of Network(s) managed by this controller. Networks() []Network // WalkNetworks uses the provided function to walk the Network(s) managed by this controller. WalkNetworks(walker NetworkWalker) // NetworkByName returns the Network which has the passed name. If not found, the error ErrNoSuchNetwork is returned. NetworkByName(name string) (Network, error) // NetworkByID returns the Network which has the passed id. If not found, the error ErrNoSuchNetwork is returned. NetworkByID(id string) (Network, error) // NewSandbox creates a new network sandbox for the passed container id NewSandbox(containerID string, options ...SandboxOption) (Sandbox, error) // Sandboxes returns the list of Sandbox(s) managed by this controller. Sandboxes() []Sandbox // WalkSandboxes uses the provided function to walk the Sandbox(s) managed by this controller. WalkSandboxes(walker SandboxWalker) // SandboxByID returns the Sandbox which has the passed id. If not found, a types.NotFoundError is returned. SandboxByID(id string) (Sandbox, error) // SandboxDestroy destroys a sandbox given a container ID SandboxDestroy(id string) error // Stop network controller Stop() // ReloadCondfiguration updates the controller configuration ReloadConfiguration(cfgOptions ...config.Option) error // SetClusterProvider sets cluster provider SetClusterProvider(provider cluster.Provider) // Wait for agent initialization complete in libnetwork controller AgentInitWait() // SetKeys configures the encryption key for gossip and overlay data path SetKeys(keys []*types.EncryptionKey) error }
NetworkController provides the interface for controller instance which manages networks.
type NetworkInfo ¶
type NetworkInfo interface { IpamConfig() (string, map[string]string, []*IpamConf, []*IpamConf) IpamInfo() ([]*IpamInfo, []*IpamInfo) DriverOptions() map[string]string Scope() string IPv6Enabled() bool Internal() bool Labels() map[string]string Dynamic() bool Created() time.Time }
NetworkInfo returns some configuration and operational information about the network
type NetworkNameError ¶
type NetworkNameError string
NetworkNameError is returned when a network with the same name already exists.
func (NetworkNameError) Error ¶
func (nnr NetworkNameError) Error() string
func (NetworkNameError) Forbidden ¶
func (nnr NetworkNameError) Forbidden()
Forbidden denotes the type of this error
type NetworkOption ¶
type NetworkOption func(n *network)
NetworkOption is an option setter function type used to pass various options to NewNetwork method. The various setter functions of type NetworkOption are provided by libnetwork, they look like NetworkOptionXXXX(...)
func NetworkOptionDeferIPv6Alloc ¶
func NetworkOptionDeferIPv6Alloc(enable bool) NetworkOption
NetworkOptionDeferIPv6Alloc instructs the network to defer the IPV6 address allocation until after the endpoint has been created It is being provided to support the specific docker daemon flags where user can deterministically assign an IPv6 address to a container as combination of fixed-cidr-v6 + mac-address TODO: Remove this option setter once we support endpoint ipam options
func NetworkOptionDriverOpts ¶
func NetworkOptionDriverOpts(opts map[string]string) NetworkOption
NetworkOptionDriverOpts function returns an option setter for any driver parameter described by a map
func NetworkOptionDynamic ¶
func NetworkOptionDynamic() NetworkOption
NetworkOptionDynamic function returns an option setter for dynamic option for a network
func NetworkOptionEnableIPv6 ¶
func NetworkOptionEnableIPv6(enableIPv6 bool) NetworkOption
NetworkOptionEnableIPv6 returns an option setter to explicitly configure IPv6
func NetworkOptionGeneric ¶
func NetworkOptionGeneric(generic map[string]interface{}) NetworkOption
NetworkOptionGeneric function returns an option setter for a Generic option defined in a Dictionary of Key-Value pair
func NetworkOptionIngress ¶
func NetworkOptionIngress() NetworkOption
NetworkOptionIngress returns an option setter to indicate if a network is an ingress network.
func NetworkOptionInternalNetwork ¶
func NetworkOptionInternalNetwork() NetworkOption
NetworkOptionInternalNetwork returns an option setter to config the network to be internal which disables default gateway service
func NetworkOptionIpam ¶
func NetworkOptionIpam(ipamDriver string, addrSpace string, ipV4 []*IpamConf, ipV6 []*IpamConf, opts map[string]string) NetworkOption
NetworkOptionIpam function returns an option setter for the ipam configuration for this network
func NetworkOptionLabels ¶
func NetworkOptionLabels(labels map[string]string) NetworkOption
NetworkOptionLabels function returns an option setter for labels specific to a network
func NetworkOptionPersist ¶
func NetworkOptionPersist(persist bool) NetworkOption
NetworkOptionPersist returns an option setter to set persistence policy for a network
type NetworkTypeError ¶
type NetworkTypeError string
NetworkTypeError type is returned when the network type string is not known to libnetwork.
func (NetworkTypeError) Error ¶
func (nt NetworkTypeError) Error() string
func (NetworkTypeError) NotFound ¶
func (nt NetworkTypeError) NotFound()
NotFound denotes the type of this error
type NetworkWalker ¶
NetworkWalker is a client provided function which will be used to walk the Networks. When the function returns true, the walk will stop.
type PortConfig ¶
type PortConfig struct { // Name for the port. If provided the port information can // be queried using the name as in a DNS SRV query. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Protocol for the port which is exposed. Protocol PortConfig_Protocol `protobuf:"varint,2,opt,name=protocol,proto3,enum=libnetwork.PortConfig_Protocol" json:"protocol,omitempty"` // The port which the application is exposing and is bound to. TargetPort uint32 `protobuf:"varint,3,opt,name=target_port,json=targetPort,proto3" json:"target_port,omitempty"` // PublishedPort specifies the port on which the service is // exposed on all nodes on the cluster. If not specified an // arbitrary port in the node port range is allocated by the // system. If specified it should be within the node port // range and it should be available. PublishedPort uint32 `protobuf:"varint,4,opt,name=published_port,json=publishedPort,proto3" json:"published_port,omitempty"` }
PortConfig specifies an exposed port which can be addressed using the given name. This can be later queried using a service discovery api or a DNS SRV query. The node port specifies a port that can be used to address this service external to the cluster by sending a connection request to this port to any node on the cluster.
func (*PortConfig) Descriptor ¶
func (*PortConfig) Descriptor() ([]byte, []int)
func (*PortConfig) GoString ¶
func (this *PortConfig) GoString() string
func (*PortConfig) Marshal ¶
func (m *PortConfig) Marshal() (data []byte, err error)
func (*PortConfig) ProtoMessage ¶
func (*PortConfig) ProtoMessage()
func (*PortConfig) Reset ¶
func (m *PortConfig) Reset()
func (*PortConfig) Size ¶
func (m *PortConfig) Size() (n int)
func (*PortConfig) String ¶
func (this *PortConfig) String() string
func (*PortConfig) Unmarshal ¶
func (m *PortConfig) Unmarshal(data []byte) error
type PortConfig_Protocol ¶
type PortConfig_Protocol int32
const ( ProtocolTCP PortConfig_Protocol = 0 ProtocolUDP PortConfig_Protocol = 1 )
func (PortConfig_Protocol) EnumDescriptor ¶
func (PortConfig_Protocol) EnumDescriptor() ([]byte, []int)
func (PortConfig_Protocol) String ¶
func (x PortConfig_Protocol) String() string
type Resolver ¶
type Resolver interface { // Start starts the name server for the container Start() error // Stop stops the name server for the container. Stopped resolver // can be reused after running the SetupFunc again. Stop() // SetupFunc() provides the setup function that should be run // in the container's network namespace. SetupFunc(int) func() // NameServer() returns the IP of the DNS resolver for the // containers. NameServer() string // SetExtServers configures the external nameservers the resolver // should use to forward queries SetExtServers([]string) // ResolverOptions returns resolv.conf options that should be set ResolverOptions() []string }
Resolver represents the embedded DNS server in Docker. It operates by listening on container's loopback interface for DNS queries.
func NewResolver ¶
func NewResolver(address string, proxyDNS bool, resolverKey string, backend DNSBackend) Resolver
NewResolver creates a new instance of the Resolver
type Sandbox ¶
type Sandbox interface { // ID returns the ID of the sandbox ID() string // Key returns the sandbox's key Key() string // ContainerID returns the container id associated to this sandbox ContainerID() string // Labels returns the sandbox's labels Labels() map[string]interface{} // Statistics retrieves the interfaces' statistics for the sandbox Statistics() (map[string]*types.InterfaceStatistics, error) // Refresh leaves all the endpoints, resets and re-applies the options, // re-joins all the endpoints without destroying the osl sandbox Refresh(options ...SandboxOption) error // SetKey updates the Sandbox Key SetKey(key string) error // Rename changes the name of all attached Endpoints Rename(name string) error // Delete destroys this container after detaching it from all connected endpoints. Delete() error // Endpoints returns all the endpoints connected to the sandbox Endpoints() []Endpoint // ResolveService returns all the backend details about the containers or hosts // backing a service. Its purpose is to satisfy an SRV query ResolveService(name string) ([]*net.SRV, []net.IP) }
Sandbox provides the control over the network container entity. It is a one to one mapping with the container.
type SandboxOption ¶
type SandboxOption func(sb *sandbox)
SandboxOption is an option setter function type used to pass various options to NewNetContainer method. The various setter functions of type SandboxOption are provided by libnetwork, they look like ContainerOptionXXXX(...)
func OptionDNS ¶
func OptionDNS(dns string) SandboxOption
OptionDNS function returns an option setter for dns entry option to be passed to container Create method.
func OptionDNSOptions ¶
func OptionDNSOptions(options string) SandboxOption
OptionDNSOptions function returns an option setter for dns options entry option to be passed to container Create method.
func OptionDNSSearch ¶
func OptionDNSSearch(search string) SandboxOption
OptionDNSSearch function returns an option setter for dns search entry option to be passed to container Create method.
func OptionDomainname ¶
func OptionDomainname(name string) SandboxOption
OptionDomainname function returns an option setter for domainname option to be passed to NewSandbox method.
func OptionExposedPorts ¶
func OptionExposedPorts(exposedPorts []types.TransportPort) SandboxOption
OptionExposedPorts function returns an option setter for the container exposed ports option to be passed to container Create method.
func OptionExtraHost ¶
func OptionExtraHost(name string, IP string) SandboxOption
OptionExtraHost function returns an option setter for extra /etc/hosts options which is a name and IP as strings.
func OptionGeneric ¶
func OptionGeneric(generic map[string]interface{}) SandboxOption
OptionGeneric function returns an option setter for Generic configuration that is not managed by libNetwork but can be used by the Drivers during the call to net container creation method. Container Labels are a good example.
func OptionHostname ¶
func OptionHostname(name string) SandboxOption
OptionHostname function returns an option setter for hostname option to be passed to NewSandbox method.
func OptionHostsPath ¶
func OptionHostsPath(path string) SandboxOption
OptionHostsPath function returns an option setter for hostspath option to be passed to NewSandbox method.
func OptionIngress ¶
func OptionIngress() SandboxOption
OptionIngress function returns an option setter for marking a sandbox as the controller's ingress sandbox.
func OptionOriginHostsPath ¶
func OptionOriginHostsPath(path string) SandboxOption
OptionOriginHostsPath function returns an option setter for origin hosts file path to be passed to NewSandbox method.
func OptionOriginResolvConfPath ¶
func OptionOriginResolvConfPath(path string) SandboxOption
OptionOriginResolvConfPath function returns an option setter to set the path to the origin resolv.conf file to be passed to net container methods.
func OptionParentUpdate ¶
func OptionParentUpdate(cid string, name, ip string) SandboxOption
OptionParentUpdate function returns an option setter for parent container which needs to update the IP address for the linked container.
func OptionPortMapping ¶
func OptionPortMapping(portBindings []types.PortBinding) SandboxOption
OptionPortMapping function returns an option setter for the mapping ports option to be passed to container Create method.
func OptionResolvConfPath ¶
func OptionResolvConfPath(path string) SandboxOption
OptionResolvConfPath function returns an option setter for resolvconfpath option to be passed to net container methods.
func OptionUseDefaultSandbox ¶
func OptionUseDefaultSandbox() SandboxOption
OptionUseDefaultSandbox function returns an option setter for using default sandbox to be passed to container Create method.
func OptionUseExternalKey ¶
func OptionUseExternalKey() SandboxOption
OptionUseExternalKey function returns an option setter for using provided namespace instead of creating one.
type SandboxWalker ¶
SandboxWalker is a client provided function which will be used to walk the Sandboxes. When the function returns true, the walk will stop.
func SandboxContainerWalker ¶
func SandboxContainerWalker(out *Sandbox, containerID string) SandboxWalker
SandboxContainerWalker returns a Sandbox Walker function which looks for an existing Sandbox with the passed containerID
func SandboxKeyWalker ¶
func SandboxKeyWalker(out *Sandbox, key string) SandboxWalker
SandboxKeyWalker returns a Sandbox Walker function which looks for an existing Sandbox with the passed key
type UnknownEndpointError ¶
type UnknownEndpointError struct {
// contains filtered or unexported fields
}
UnknownEndpointError is returned when libnetwork could not find in it's database an endpoint with the same name and id.
func (*UnknownEndpointError) Error ¶
func (uee *UnknownEndpointError) Error() string
func (*UnknownEndpointError) NotFound ¶
func (uee *UnknownEndpointError) NotFound()
NotFound denotes the type of this error
type UnknownNetworkError ¶
type UnknownNetworkError struct {
// contains filtered or unexported fields
}
UnknownNetworkError is returned when libnetwork could not find in it's database a network with the same name and id.
func (*UnknownNetworkError) Error ¶
func (une *UnknownNetworkError) Error() string
func (*UnknownNetworkError) NotFound ¶
func (une *UnknownNetworkError) NotFound()
NotFound denotes the type of this error
Source Files ¶
- agent.go
- agent.pb.go
- controller.go
- default_gateway.go
- default_gateway_linux.go
- drivers_ipam.go
- drivers_linux.go
- drivers_stub_linux.go
- endpoint.go
- endpoint_cnt.go
- endpoint_info.go
- error.go
- network.go
- network_unix.go
- resolver.go
- resolver_unix.go
- sandbox.go
- sandbox_dns_unix.go
- sandbox_externalkey.go
- sandbox_externalkey_unix.go
- sandbox_store.go
- service.go
- service_linux.go
- store.go
Directories ¶
Path | Synopsis |
---|---|
Godeps
|
|
_workspace/src/github.com/Sirupsen/logrus
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
|
Package logrus is a structured logger for Go, completely API compatible with the standard library logger. |
_workspace/src/github.com/boltdb/bolt
Package bolt implements a low-level key/value store in pure Go.
|
Package bolt implements a low-level key/value store in pure Go. |
_workspace/src/github.com/codegangsta/cli
Package cli provides a minimal framework for creating and organizing command line Go applications.
|
Package cli provides a minimal framework for creating and organizing command line Go applications. |
_workspace/src/github.com/coreos/etcd/client
Package client provides bindings for the etcd APIs.
|
Package client provides bindings for the etcd APIs. |
_workspace/src/github.com/coreos/go-systemd/dbus
Integration with the systemd D-Bus API.
|
Integration with the systemd D-Bus API. |
_workspace/src/github.com/coreos/go-systemd/util
Package util contains utility functions related to systemd that applications can use to check things like whether systemd is running.
|
Package util contains utility functions related to systemd that applications can use to check things like whether systemd is running. |
_workspace/src/github.com/deckarep/golang-set
Package mapset implements a simple and generic set collection.
|
Package mapset implements a simple and generic set collection. |
_workspace/src/github.com/docker/docker/api/types/filters
Package filters provides helper function to parse and handle command line filter, used for example in docker ps or docker images commands.
|
Package filters provides helper function to parse and handle command line filter, used for example in docker ps or docker images commands. |
_workspace/src/github.com/docker/docker/pkg/locker
Package locker provides a mechanism for creating finer-grained locking to help free up more global locks to handle other tasks.
|
Package locker provides a mechanism for creating finer-grained locking to help free up more global locks to handle other tasks. |
_workspace/src/github.com/docker/docker/pkg/parsers/kernel
Package kernel provides helper function to get, parse and compare kernel versions for different platforms.
|
Package kernel provides helper function to get, parse and compare kernel versions for different platforms. |
_workspace/src/github.com/docker/docker/pkg/plugins
Package plugins provides structures and helper functions to manage Docker plugins.
|
Package plugins provides structures and helper functions to manage Docker plugins. |
_workspace/src/github.com/docker/docker/pkg/signal
Package signal provides helper functions for dealing with signals across various operating systems.
|
Package signal provides helper functions for dealing with signals across various operating systems. |
_workspace/src/github.com/docker/docker/pkg/stringid
Package stringid provides helper functions for dealing with string identifiers
|
Package stringid provides helper functions for dealing with string identifiers |
_workspace/src/github.com/docker/docker/pkg/term
Package term provides structures and helper functions to work with terminal (state, sizes).
|
Package term provides structures and helper functions to work with terminal (state, sizes). |
_workspace/src/github.com/docker/go-connections/sockets
Package sockets provides helper functions to create and configure Unix or TCP sockets.
|
Package sockets provides helper functions to create and configure Unix or TCP sockets. |
_workspace/src/github.com/docker/go-connections/tlsconfig
Package tlsconfig provides primitives to retrieve secure-enough TLS configurations for both clients and servers.
|
Package tlsconfig provides primitives to retrieve secure-enough TLS configurations for both clients and servers. |
_workspace/src/github.com/docker/go-units
Package units provides helper function to parse and print size and time units in human-readable format.
|
Package units provides helper function to parse and print size and time units in human-readable format. |
_workspace/src/github.com/godbus/dbus
Package dbus implements bindings to the D-Bus message bus system.
|
Package dbus implements bindings to the D-Bus message bus system. |
_workspace/src/github.com/gogo/protobuf/gogoproto
Package gogoproto provides extensions for protocol buffers to achieve:
|
Package gogoproto provides extensions for protocol buffers to achieve: |
_workspace/src/github.com/gogo/protobuf/proto
Package proto converts data structures to and from the wire format of protocol buffers.
|
Package proto converts data structures to and from the wire format of protocol buffers. |
_workspace/src/github.com/gogo/protobuf/protoc-gen-gogo/descriptor
Package descriptor is a generated protocol buffer package.
|
Package descriptor is a generated protocol buffer package. |
_workspace/src/github.com/golang/protobuf/proto
Package proto converts data structures to and from the wire format of protocol buffers.
|
Package proto converts data structures to and from the wire format of protocol buffers. |
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
|
Package context stores values shared during a request lifetime. |
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
|
Package gorilla/mux implements a request router and dispatcher. |
_workspace/src/github.com/hashicorp/go-msgpack/codec
High Performance, Feature-Rich Idiomatic Go encoding library for msgpack and binc .
|
High Performance, Feature-Rich Idiomatic Go encoding library for msgpack and binc . |
_workspace/src/github.com/hashicorp/memberlist
memberlist is a library that manages cluster membership and member failure detection using a gossip based protocol.
|
memberlist is a library that manages cluster membership and member failure detection using a gossip based protocol. |
_workspace/src/github.com/miekg/dns
Package dns implements a full featured interface to the Domain Name System.
|
Package dns implements a full featured interface to the Domain Name System. |
_workspace/src/github.com/opencontainers/runc/libcontainer
Libcontainer provides a native Go implementation for creating containers with namespaces, cgroups, capabilities, and filesystem access controls.
|
Libcontainer provides a native Go implementation for creating containers with namespaces, cgroups, capabilities, and filesystem access controls. |
_workspace/src/github.com/opencontainers/runc/libcontainer/criurpc
Package criurpc is a generated protocol buffer package.
|
Package criurpc is a generated protocol buffer package. |
_workspace/src/github.com/seccomp/libseccomp-golang
Package seccomp rovides bindings for libseccomp, a library wrapping the Linux seccomp syscall.
|
Package seccomp rovides bindings for libseccomp, a library wrapping the Linux seccomp syscall. |
_workspace/src/github.com/stretchr/testify/assert
Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.
|
Package assert provides a set of comprehensive testing tools for use with the normal Go testing system. |
_workspace/src/github.com/stretchr/testify/require
Alternative testing tools which stop test execution if test failed.
|
Alternative testing tools which stop test execution if test failed. |
_workspace/src/github.com/syndtr/gocapability/capability
Package capability provides utilities for manipulating POSIX capabilities.
|
Package capability provides utilities for manipulating POSIX capabilities. |
_workspace/src/github.com/ugorji/go/codec
High Performance, Feature-Rich Idiomatic Go codec/encoding library for binc, msgpack, cbor, json.
|
High Performance, Feature-Rich Idiomatic Go codec/encoding library for binc, msgpack, cbor, json. |
_workspace/src/github.com/vishvananda/netlink
Package netlink provides a simple library for netlink.
|
Package netlink provides a simple library for netlink. |
_workspace/src/github.com/vishvananda/netlink/nl
Package nl has low level primitives for making Netlink calls.
|
Package nl has low level primitives for making Netlink calls. |
_workspace/src/github.com/vishvananda/netns
Package netns allows ultra-simple network namespace handling.
|
Package netns allows ultra-simple network namespace handling. |
_workspace/src/golang.org/x/net/context
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
|
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes. |
_workspace/src/golang.org/x/net/proxy
Package proxy provides support for a variety of protocols to proxy network data.
|
Package proxy provides support for a variety of protocols to proxy network data. |
_workspace/src/golang.org/x/sys/unix
Package unix contains an interface to the low-level operating system primitives.
|
Package unix contains an interface to the low-level operating system primitives. |
Package bitseq provides a structure and utilities for representing long bitmask as sequence of run-lenght encoded blocks.
|
Package bitseq provides a structure and utilities for representing long bitmask as sequence of run-lenght encoded blocks. |
cmd
|
|
proxy
docker-proxy provides a network Proxy interface and implementations for TCP and UDP.
|
docker-proxy provides a network Proxy interface and implementations for TCP and UDP. |
drivers
|
|
overlay
Package overlay is a generated protocol buffer package.
|
Package overlay is a generated protocol buffer package. |
remote/api
Package api represents all requests and responses suitable for conversation with a remote driver.
|
Package api represents all requests and responses suitable for conversation with a remote driver. |
Package idm manages reservation/release of numerical ids from a configured set of contiguous ids
|
Package idm manages reservation/release of numerical ids from a configured set of contiguous ids |
Package ipamapi specifies the contract the IPAM service (built-in or remote) needs to satisfy.
|
Package ipamapi specifies the contract the IPAM service (built-in or remote) needs to satisfy. |
ipams
|
|
null
Package null implements the null ipam driver.
|
Package null implements the null ipam driver. |
remote/api
Package api defines the data structure to be used in the request/response messages between libnetwork and the remote ipam plugin
|
Package api defines the data structure to be used in the request/response messages between libnetwork and the remote ipam plugin |
Package ipamutils provides utility functions for ipam management
|
Package ipamutils provides utility functions for ipam management |
Package networkdb is a generated protocol buffer package.
|
Package networkdb is a generated protocol buffer package. |
Package options provides a way to pass unstructured sets of options to a component expecting a strongly-typed configuration structure.
|
Package options provides a way to pass unstructured sets of options to a component expecting a strongly-typed configuration structure. |
Package osl describes structures and interfaces which abstract os entities
|
Package osl describes structures and interfaces which abstract os entities |
Package resolvconf provides utility code to query and update DNS configuration in /etc/resolv.conf
|
Package resolvconf provides utility code to query and update DNS configuration in /etc/resolv.conf |
Package types contains types that are common across libnetwork project
|
Package types contains types that are common across libnetwork project |