Перезапустить докер-контейнер, если он выше определенного ограничения памяти? - PullRequest
1 голос
/ 28 мая 2019

Я хочу, чтобы в моем docker-compose была политика, согласно которой использование памяти контейнера Docker будет превышать количество определенных ограничений памяти, которые он перезапускает.

Это то, что я сделал до сих пор:

version: '3'

services:
    modbus_collector:
        build: .
        image: modbus_collector:2.0.0
        container_name: modbus_collector
        restart: unless-stopped
        deploy:
          resources:
            limits:
              memory: 28M

Я ожидал, что он будет перезапущен, когда использование памяти контейнера превысит 28M, но когда я отслеживаю контейнеры докера по docker stats, я вижу, что это использование памяти контейнера растет и не происходит при перезапуске!

Я тоже пытался restart: always, но результат был тот же.


[UPDATE]:

С версией 2 он отлично работает с mem_limit:. Но это не помогает при использовании версии 3, помещая их в раздел deploy, кажется, не стоит, если я не использую режим роя.

Даже в версии 2.1 у меня есть проблема при перезапуске контейнера: ограничение применено правильно, но когда использование памяти контейнера возрастает, это ограничение предотвращает это, но я ожидал, что вместо уменьшения памяти он перезапустит этот контейнер.

version: '2.1'

services:
    modbus_collector:
        build: .
        image: modbus_collector:2.0.0
        container_name: modbus_collector
        restart: unless-stopped
        mem_limit: 28m
...