在 Golang 应用程序中使用 docker go pkg 创建 docker 容器时如何指定

我正在尝试使用 Docker 引擎 SDK 和 Docker API 从我的 golang 应用程序创建 docker 容器


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


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


aluckdog
浏览 106回答 1
1回答

幕布斯6054654

和--syncmode full标志--rinkeby是CMD参数。因此,在调用时,您正在调用ContainerCreate方法中container.Config添加以下内容:Cmd: []string{"--syncmode", "full", "--rinkeby"}有关完整示例,请参阅此
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go