登录
首页 >  Golang >  Go问答

使用docker cli在golang中创建子网的方法

来源:stackoverflow

时间:2024-02-11 19:00:25 276浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《使用docker cli在golang中创建子网的方法》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我正在尝试为用 golang 编写的应用程序创建一个 docker 网络。

我知道我可以使用此 networkcreate 函数,但我不确定如何指定网络选项。

在常规终端控制台中,我可以使用以下命令创建网络

docker network create -d bridge --subnet=174.3.12.5/16 mynet

但是如何使用 networkcreate() 作为此网络创建的等效项?


正确答案


package main

import (
    "context"
    "fmt"
    "github.com/docker/docker/api/types"
    "github.com/docker/docker/api/types/network"
    "github.com/docker/docker/client"
)

func main() {
    cli, err := client.newclientwithopts(client.fromenv)
    if err != nil {
        fmt.println(err)
    }

    newnetwork := types.networkcreate{ipam: &network.ipam{
        driver: "default",
        config: []network.ipamconfig{network.ipamconfig{
            subnet: "174.3.12.5/16",
        }},
    }}

    res, err := cli.networkcreate(context.background(), "test", newnetwork)
    if err != nil {
        fmt.println(err)
        return
    }
    fmt.println(res)

}

这是一个最小的可实现示例。驱动程序的名称是 default

您可以通过 networkcreate 选项结构指定网络选项。

如果你想将命令 docker network create -dbridge --subnet=174.3.12.5/16 mynet 转换为 golang 等效命令,它看起来像这样:

networkResponse, err := client.NetworkCreate(context.Background(), "mynet", types.NetworkCreate{
    Driver: "bridge",
    IPAM: &network.IPAM{
        Config: network.IPAMConfig{
            Subnet: "174.3.12.5/16",
        },
    },
})

今天关于《使用docker cli在golang中创建子网的方法》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>