network

package
v0.0.0-...-ae7f4bf Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Connect

func Connect(networkName string, info *container.Info) error

Connect 连接容器到之前创建的网络 mydocker run -net testnet -p 8080:80 xxxx

func CreateNetwork

func CreateNetwork(driver, subnet, name string) error

func DeleteNetwork

func DeleteNetwork(networkName string) error

func Disconnect

func Disconnect(networkName string, info *container.Info) error

func Init

func Init() error

func ListNetwork

func ListNetwork()

Types

type BridgeNetworkDriver

type BridgeNetworkDriver struct {
}

func (*BridgeNetworkDriver) Connect

func (d *BridgeNetworkDriver) Connect(network *Network, endpoint *Endpoint) error

Connect 连接一个网络和网络端点

func (*BridgeNetworkDriver) Create

func (d *BridgeNetworkDriver) Create(subnet, name string) (*Network, error)

func (*BridgeNetworkDriver) Delete

func (d *BridgeNetworkDriver) Delete(network Network) error

func (*BridgeNetworkDriver) Disconnect

func (d *BridgeNetworkDriver) Disconnect(network Network, endpoint *Endpoint) error

func (*BridgeNetworkDriver) Name

func (d *BridgeNetworkDriver) Name() string

type Driver

type Driver interface {
	Name() string
	Create(subnet, name string) (*Network, error)
	Delete(network Network) error
	Connect(network *Network, endpoint *Endpoint) error
	Disconnect(network Network, endpoint *Endpoint) error
}

type Endpoint

type Endpoint struct {
	ID          string           `json:"id"`
	Device      netlink.Veth     `json:"dev"`
	IPAddress   net.IP           `json:"ip"`
	MacAddress  net.HardwareAddr `json:"mac"`
	Network     *Network
	PortMapping []string
}

type IPAM

type IPAM struct {
	SubnetAllocatorPath string             // 分配文件存放位置
	Subnets             *map[string]string // 网段和位图算法的数组 map, key 是网段, value 是分配的位图数组
}

IPAM 用于网络 IP 地址的分配和释放,包括容器的IP地址和网络网关的IP地址

func (*IPAM) Allocate

func (ipam *IPAM) Allocate(subnet *net.IPNet) (ip net.IP, err error)

func (*IPAM) Release

func (ipam *IPAM) Release(subnet *net.IPNet, ipAddr *net.IP) error

type Network

type Network struct {
	Name    string     // 网络名
	IpRange *net.IPNet // 地址段
	Driver  string     // 网络驱动名
}

Jump to

Keyboard shortcuts

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