猿问

Docker 容器网络主机模式适用于 CLI,但不适用于 Go SDK

运行 Docker 18.09.1、API 1.39,并尝试将容器的网络置于主机模式,以便蓝牙正常工作。当我从 CLI 启动容器时,一切正常:


docker run --rm --name mycontainer --net=host imageName my-command

当我尝试使用 Go API 启动这个容器时,网络似乎没有正确设置,导致我的容器死掉。


config := &container.Config{

    Cmd:      []string{"my-command"},

    Hostname: "mycontainer",

    Image:    imageName,

}


hostConfig := &container.HostConfig{

    AutoRemove: true,

    NetworkMode: "host",

}



container, err := cli.ContainerCreate(*ctx, config, hostConfig, nil, "mycontainer")

很明显我遗漏了一些东西,但我看不到那是什么。因为我正在指定网络模式,所以我需要网络配置(nil的参数)吗?ContainerCreate


红糖糍粑
浏览 125回答 1
1回答

手掌心

当我正要发布问题时,我发现了我的问题,所以我将分享它,因为这在任何文档中都没有明确说明。使用host网络模式时,您的容器配置不应包含主机名。改变这个:config := &container.Config{    Cmd:      []string{"my-command"},    Hostname: "mycontainer",    Image:    imageName,}...对此:config := &container.Config{    Cmd:      []string{"my-command"},    Image:    imageName,}一切都过去了。
随时随地看视频慕课网APP

相关分类

Go
我要回答