Режим хоста Docker Container работает из CLI, но не из Go SDK - PullRequest
0 голосов
/ 15 февраля 2019

Запуск Docker 18.09.1, API 1.39 и попытка перевести сеть контейнера в режим хоста, чтобы Bluetooth работал правильно.Когда я запускаю свой контейнер из интерфейса командной строки, все работает отлично:

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

Когда я пытаюсь запустить этот контейнер с помощью API Go, кажется, что сеть настроена неправильно, и мой контейнер умирает.

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), поскольку я задаю сетевой режим?

1 Ответ

0 голосов
/ 15 февраля 2019

Я поймал свою проблему, когда собирался опубликовать вопрос, поэтому я поделюсь им, поскольку это не было явно ясно ни в одной документации.При использовании сетевого режима host в конфигурации вашего контейнера не должно быть имени хоста.

Изменение этого:

config := &container.Config{
    Cmd:      []string{"my-command"},
    Hostname: "mycontainer",
    Image:    imageName,
}

... на это:

config := &container.Config{
    Cmd:      []string{"my-command"},
    Image:    imageName,
}

Было ли это все, что нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...