我是否需要为我想要沙箱的每个任务创建一个新的lxc(docker)容器?

我是否需要为我想要沙箱的每个任务创建一个新的lxc(docker)容器?,docker,virtualization,lxc,Docker,Virtualization,Lxc,我需要为编程比赛开发后端 用户将代码提交到服务器,我们希望在沙箱中运行代码,这样他们既不能影响服务器,也不能影响彼此 问题分为两部分: 一,。这是否正确,每次我想为用户的解决方案打分时,我需要大致: #!/usr/bin/python3 c = lxc.Container("apicontainer") c.create("download", lxc.LXC_CREATE_QUIET, {"dist": "ubuntu",

我需要为编程比赛开发后端

用户将代码提交到服务器,我们希望在沙箱中运行代码,这样他们既不能影响服务器,也不能影响彼此

问题分为两部分:

一,。这是否正确,每次我想为用户的解决方案打分时,我需要大致:

#!/usr/bin/python3
c = lxc.Container("apicontainer")
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()
或者克隆

好吧,但是执行上面提到的似乎需要相当长的时间,那么这是不是一种方式呢

二,。我应该使用LXC来实现我的目的,还是应该使用Docker


由于第二部分的原因,我担心这个问题会被搁置,但我已经阅读了一些关于lxc和Docker之间差异的问题,我仍然感到困惑。

Docker shell就是这样做的

每次运行dsh命令时,它都会启动一个容器,您可以将其用作shell或提供要运行的命令。退出后,容器将被移除