как создать контейнер с ограничением памяти в Docker Go клиент - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь создать контейнер с ограничением памяти с помощью клиента docker go - https://godoc.org/github.com/docker/docker/client#Client.ContainerCreate Однако я не могу понять, где добавить эти параметры в функцию.

docker run-m 250m - имя тестового репо / тэга

В интерфейсе докера он находится в структуре Host Config, но в go doc я увидел опцию в разделе ресурсов, которая используется в HostConfig - https://godoc.org/github.com/docker/docker/api/types/container#HostConfig

Вызов, подобный этому

import(
....
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/api/types/events"
"github.com/docker/docker/api/types/filters"
"github.com/docker/docker/client"
"github.com/docker/go-connections/nat"
)

...

resp, err1 := cli.ContainerCreate(ctx,
    &container.Config{
            User:         strconv.Itoa(os.Getuid()), // avoid permission issues
            Image:        cfg.ImageName,
            AttachStdin:  false,
            AttachStdout: true,
            AttachStderr: true,
            Tty:          true,
            ExposedPorts: exposedPorts,
            Labels:       labels,
            Env:          envVars,
    },
    &container.HostConfig{
            Binds:       binds,
            NetworkMode: container.NetworkMode(cfg.Network),
            PortBindings: nat.PortMap{
                    "1880": []nat.PortBinding{
                            nat.PortBinding{
                                    HostIP:   "",
                                    HostPort: "1880",
                            },
                    }},
            AutoRemove: true,
            Memory : 262144000, //this does not work
    },
    nil, // &network.NetworkingConfig{},
    name,
)

неизвестное поле 'Память' в литерале структуры типа container.HostConfig.Поскольку у него нет имени поля и только типа, я понятия не имею, как добавить ресурсы в Hostconfig.Любая помощь приветствуется - я новичок на ходу и пытаюсь настроить проект с открытым исходным кодом, который я использовал - redzilla - из-за ограничений ресурсов моей системы

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете определить предел памяти, используя Resources поля структуры HostConfig.

Resources: container.Resources{ Memory:3e+7 }
...