我正试图为用Golang编写的应用程序创建一个对接者网络。
我知道我可以使用this NetworkCreate
function,但我不知道如何指定网络选项。
在常规终端控制台中,我只需使用
docker network create -d bridge --subnet=174.3.12.5/16 mynet
但是如何使用NetworkCreate()
作为这个网络创建的等价物呢?
发布于 2022-08-16 23:42:33
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
。
发布于 2022-08-16 22:05:18
可以通过NetworkCreate
选项结构指定网络选项。
如果您想将命令docker network create -d bridge --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",
},
},
})
发布于 2022-08-16 21:35:10
您可以使用exec.Command(...).CombinedOutput()
https://stackoverflow.com/questions/73383055
复制相似问题