Size: a a a

RU.Docker — Официальное Русское Сообщество

2021 February 18

S

Slayer in RU.Docker — Официальное Русское Сообщество
мои эксперементы сказались :(
источник

I

Ivan in RU.Docker — Официальное Русское Сообщество
Добрый вечер!  У меня следующая проблема: Я установил Docker на Windows 10. Мне нужно настроить связь с daemon с TLS. Я сделал необходимые сертификаты, как в документации и прописал пути в daemon.json. Но при любых изменениях daemon.json получаю следующую ошибку: docker.core.httpwebresponse exception: {"status":"error","message":"exit status 1"} в docker.core.logging.httpclientexceptionintercept. Подскажите пожалуйста, в чем может быть причина?
источник

як

я никуда не тороплюс... in RU.Docker — Официальное Русское Сообщество
Кто-нибудь имеет опыт использования каких-нибудь "экзотических" storage drivers?

Мне нужно писать и читать много (300 тысяч) маленьких (50 ГБ всего) файлов.

И стоит ли?
источник

ee

eqipo eqipo in RU.Docker — Официальное Русское Сообщество
Добрый вечер. Подскажите на счет докера. А именно docker-compose.

1. Создал проект через docker-compose up -d
2. После этого все мои файлы получили права root и я не могу локально редактировать их.
3. Подскажите, как запускать docker-compose так, чтобы иметь возможность их потом локально редактировать?
источник

VC

Vladimir Chernyshev in RU.Docker — Официальное Русское Сообщество
источник

VC

Vladimir Chernyshev in RU.Docker — Официальное Русское Сообщество
4 запускать процесс в контейнере от нужного пользователя
источник
2021 February 19

AS

Andrey Syvrachev in RU.Docker — Официальное Русское Сообщество
Коллеги, запускаю вот такой вот тест:

#include <iostream>
#include <memory.h>

int main() {
   std::cout << "Hello, World!" << std::endl;

   int i = 0;
   void *mem;
   do {
       mem = malloc(1024 * 1024);
       if (mem) {
           i++;
           std::cout << "Allocated: " << i << " Mb" << std::endl;
           ::memset(mem, 123, 1024 * 1024);
       }
   } while (mem);

   std::cout << "No memory! " << std::endl;
   return 0;
}


в докере, вот такой строчкой:

docker run --memory="100m" --memory-swappiness=0 --oom-kill-disable  -it dbg


И при этом на 99-ом мегабайте она зависает, если без ключа --oom-kill-disable - то процесс нормально убивается.

Но мне бы хотелось поведения, когда malloc вернет  NULL.
Как этого добиться?
источник
2021 February 20

MW

Mr. Wh🦠er in RU.Docker — Официальное Русское Сообщество
а зачем ты утечки памяти добиваешься
источник

T

The Fallen Phoenix in RU.Docker — Официальное Русское Сообщество
Andrey Syvrachev
Коллеги, запускаю вот такой вот тест:

#include <iostream>
#include <memory.h>

int main() {
   std::cout << "Hello, World!" << std::endl;

   int i = 0;
   void *mem;
   do {
       mem = malloc(1024 * 1024);
       if (mem) {
           i++;
           std::cout << "Allocated: " << i << " Mb" << std::endl;
           ::memset(mem, 123, 1024 * 1024);
       }
   } while (mem);

   std::cout << "No memory! " << std::endl;
   return 0;
}


в докере, вот такой строчкой:

docker run --memory="100m" --memory-swappiness=0 --oom-kill-disable  -it dbg


И при этом на 99-ом мегабайте она зависает, если без ключа --oom-kill-disable - то процесс нормально убивается.

Но мне бы хотелось поведения, когда malloc вернет  NULL.
Как этого добиться?
Установите лимит системным вызовом https://man7.org/linux/man-pages/man2/getrlimit.2.html
источник

T

The Fallen Phoenix in RU.Docker — Официальное Русское Сообщество
Тогда реализация malloc будет возвращать NULL при достижении его. Почему не работает лимит через аргумент, вопрос хороший, но Java прошлых версий тоже знаменита тем, что в упор не замечала этот параметр и суицидально его пересекала.
источник

T

The Fallen Phoenix in RU.Docker — Официальное Русское Сообщество
Так что, вероятно, процесс просто не видит этого через самые простые POSIX-совместимые вызовы.
источник

T

The Fallen Phoenix in RU.Docker — Официальное Русское Сообщество
Mr. Wh🦠er
а зачем ты утечки памяти добиваешься
Чтобы исследовать поведение системы в экстремальных состояниях?
источник

T

The Fallen Phoenix in RU.Docker — Официальное Русское Сообщество
Andrey Syvrachev
Коллеги, запускаю вот такой вот тест:

#include <iostream>
#include <memory.h>

int main() {
   std::cout << "Hello, World!" << std::endl;

   int i = 0;
   void *mem;
   do {
       mem = malloc(1024 * 1024);
       if (mem) {
           i++;
           std::cout << "Allocated: " << i << " Mb" << std::endl;
           ::memset(mem, 123, 1024 * 1024);
       }
   } while (mem);

   std::cout << "No memory! " << std::endl;
   return 0;
}


в докере, вот такой строчкой:

docker run --memory="100m" --memory-swappiness=0 --oom-kill-disable  -it dbg


И при этом на 99-ом мегабайте она зависает, если без ключа --oom-kill-disable - то процесс нормально убивается.

Но мне бы хотелось поведения, когда malloc вернет  NULL.
Как этого добиться?
По поводу того, что при пересечении лимитов указанных через namespaces типа пропускной способности, происходит pause, история вроде известная. Но почему так и для memory, не знаю. Вероятно чтобы не усложнять ничего. Возвращение NULL это задача реализации malloc, части системной библиотеки C, которая, вообще говоря, может быть своя у контейнера.
источник

MW

Mr. Wh🦠er in RU.Docker — Официальное Русское Сообщество
каких исследований? он в бесконечном цикле выделяет память
источник

MW

Mr. Wh🦠er in RU.Docker — Официальное Русское Сообщество
memset наверное -1 возвращает
источник

MW

Mr. Wh🦠er in RU.Docker — Официальное Русское Сообщество
а -1 все равно что истина
источник

T

The Fallen Phoenix in RU.Docker — Официальное Русское Сообщество
Если она ничего не знает о контейнеризации и не умеет общаться с ядром на эту тему, срабатывает более низкоуровневая защита и процесс замирает.
источник

MW

Mr. Wh🦠er in RU.Docker — Официальное Русское Сообщество
это ты ничего про язык не знаешь
источник

T

The Fallen Phoenix in RU.Docker — Официальное Русское Сообщество
Mr. Wh🦠er
это ты ничего про язык не знаешь
Конечно)
источник

MW

Mr. Wh🦠er in RU.Docker — Официальное Русское Сообщество
и чувак выше тоже
источник