在 Golang 应用程序中使用 docker go pkg 创建 docker 容器时如何指定同步模式和网络类型?

how to specify sync-mode and network type while creating docker container using docker go pkg in Golang application?

我正在尝试使用 Docker 引擎 SDK 和 Docker API

从我的 golang 应用程序创建容器

这是我想在我的应用程序中实现的命令:

docker run --name rinkeby-node ethereum/client-go --rinkeby --syncmode full

这是我正在使用的代码

    ctx := context.Background()
    cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
    if err != nil {
        panic(err)
    }
    imageName := "ethereum/client-go"
    out, err := cli.ImagePull(ctx, imageName, types.ImagePullOptions{})
    if err != nil {
        panic(err)
    }
    defer out.Close()
    io.Copy(os.Stdout, out)


    resp, err := cli.ContainerCreate(ctx, &container.Config{
        Image: imageName,
    }, nil, nil, nil, "containerName")
    if err != nil {
        panic(err)
    }

    if err := cli.ContainerStart(ctx, resp.ID, types.ContainerStartOptions{}); err != nil {
        panic(err)
    }
    fmt.Println(resp.ID) 

现在我想将同步模式指定为完整,将网络指定为 rinkeby

--syncmode full--rinkeby 标志是 CMD 个参数。

所以当你调用 container.Config 内部的 ContainerCreate 方法时,添加这个:

Cmd: []string{"--syncmode", "full", "--rinkeby"}

有关完整示例,请参阅 this