Нужно ли создававать новый lxc(docker)-контейнер для каждой новой задачи, которую я хочу изолировать?

Мне нужно написать бэкенд для соревнования по программированию.

Участники сабмитят свои решения (код) на сервер для проверки. Нужно, чтобы они не вылезли из песочицы в процессе выполнения.

Два вопроса:
1. Что использовать, Docker или lxc?
Я прочитал пару статей об их различиях, но мне все равно не понятно, что подходит лучше для моих нужд.

2. Если я использую lxc, то правильно ли я понимаю, что для каждого нового сабмита, который я хочу запустить и проверить, необходимо делать следующее:

#!/usr/bin/python3
c = lxc.Container("apicontainer")

# или c.clone(...)
c.create("download", lxc.LXC_CREATE_QUIET, {"dist": "ubuntu",
                                               "release": "trusty",
                                               "arch": "i386"})
c.start()
c.execute('score_solution_script_inside_container')
c.shutdown()
c.destroy()

Это как будто бы занимает довольно много времени, наверное нужно действовать иначе?

Спасибо!
  • Вопрос задан
  • 268 просмотров
Пригласить эксперта
Ответы на вопрос 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
porto попробуйте.
А так - и docker, и lxc подойдут.

В lxc контейнер создавать можно из локального архива.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы