Как создать контейнер с ограничением памяти в Docker Go клиент

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

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

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

Звонить так

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,
)

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

1 ответ

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

Resources: container.Resources{ Memory:3e+7 }
Другие вопросы по тегам