Увеличить память контейнера Docker с docker -композицией на Windows? - PullRequest
1 голос
/ 24 апреля 2020

На Docker для Windows, у меня есть простой SQL Серверный контейнер на основе microsoft/mssql-server-windows-developer, который запускается с docker-compose up через простой docker-compose.yaml файл.

Есть ли способ выделить более 1 ГБ памяти для этого контейнера? Я могу сделать это, когда запускаю образ напрямую или когда создаю свой образ с помощью -m 4GB, но я не могу понять, как это сделать при использовании Docker Compose. Для правильной работы этого контейнера требуется более 1 ГБ ОЗУ, и все мои исследования пока не выявили ничего полезного.

Я рассмотрел вариант конфигурации resources , но это применимо только тогда, когда работает под Docker Рой, который мне не нужен.

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Ищете опции для установки ресурсов в контейнерах без режима роя?

Здесь описаны опции c для ключа развертывания и режима роя. Если вы хотите установить ограничения ресурсов для развертываний не в Swarm, используйте Составьте файл формата версии 2 ЦП, память и другие опции ресурса . Если у вас есть дополнительные вопросы, обратитесь к обсуждению проблемы GitHub docker / compose / 4513 .

Вы можете использовать файл docker -compose в версии 2 вместо версия 3. Вы можете использовать mem_limit (доступно в версии 2) для установки предела памяти. Таким образом, вы можете использовать docker -композитный файл, например так:

version: "2.4"
services:
  sql-server:
    image: microsoft/mssql-server-windows-developer
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=t3st&Pa55word
    mem_limit: 4GB

Вы можете проверить ограничение памяти, используя docker stats.

0 голосов
/ 24 апреля 2020

В docker compose version 2. * Вы можете использовать опцию mem_limit , как показано ниже

version: '2.4'
services:
  my-svc:
    image: microsoft/mssql-server-windows-developer
    mem_limit: 4G

В docker compose version 3 она заменяется на ресурсы опции, для которых требуется docker рой.

version: '3'
services:
  my-svc:
    image: microsoft/mssql-server-windows-developer
    deploy:
      resources:
        limits:
          memory: 4G

Существует флаг совместимости, который можно использовать для перевода раздела развертывания в эквивалентные параметры версии 2 при запуске docker-compose --compatibility up. Однако это не рекомендуется для рабочих развертываний

Из документации

docker -compose 1.20.0 вводит новый флаг --compatibility, разработанный для помощи разработчикам переход на версию 3 проще. При включении docker -compose читает раздел развертывания определения каждой службы и пытается преобразовать его в эквивалентный параметр версии 2. В настоящее время переведены следующие ключи развертывания:

  • ресурсы
  • ограничения и резервирование памяти
  • реплик
  • restart_policy

условие и max_attempts Все остальные ключи игнорируются и выдают предупреждение, если оно присутствует. Вы можете просмотреть конфигурацию, которая будет использоваться для развертывания, используя флаг --compatibility с командой config.

Мы не рекомендуем использовать режим --compatibility в рабочей среде. Поскольку полученная конфигурация является приблизительной с использованием свойств, не относящихся к Swarm, она может привести к неожиданным результатам.

...