Задать вопрос

Почему docker exec выполняется очень долго и есть ли способ ее ускорить?

Я создаю контейнер:
docker run -it -d --env TIMEFORMAT=\n%3R --name python_container -v (текущая директория)\temp:/temp docker_python_runner bash


Через команду exec запускаю скрипт внутри контейнера:
docker exec -i python_container bash -c "time python temp/temp_file.py" 2>&1


Допустим, это будет скрипт, который просто складывает 2 числа (например, stdin: 5 10).

Вывод:
15
0.025


Т.е результат работы программы: 15, время выполнения скрипта: 0.025, при том что общее время выполнения команды exec - 1.0805566310882568

Все команды я запускаю из python скрипта при помощи библиотеки subprocess:
result = Popen(command, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True, encoding='utf-8')
stdout, stderr = result.communicate(input=stdin, timeout=5)


Моя операционная система - Windows

Вообще все это делается для тестирования пользовательского кода => я запускаю одну и ту же exec команду раз 15 - 20. Как ускорить ее выполнение и может быть есть способ как то оптимизировать именно этот момент?
  • Вопрос задан
  • 293 просмотра
Подписаться 3 Средний 1 комментарий
Решения вопроса 1
karabanov
@karabanov Куратор тега Docker
Системный администратор
Под Windows приходится запускать Linux в виртуальной машине, чтобы запустить Docker контейнер (ведь Docker построен на Linux-овых Napespace и Cgroups), а это требует много ресурсов.

Попробуй сначала зайти в контейнер: docker exec -it python_container bash
И потом запускать скрипт: time python temp/temp_file.py

Попробуй использовать WSL2 - это должно изменить ситуацию в лучшую сторону, но всё равно до нативных показателей будет далековато.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
19 янв. 2025, в 02:12
70000 руб./за проект
19 янв. 2025, в 01:58
20000 руб./за проект
18 янв. 2025, в 23:27
50000 руб./за проект