我可以让Docker容器从映像重新启动吗?

时间:2018-10-16 17:48:49

标签: docker

背景

我有一个容器,它运行着很多东西,包括暴露给其他开发人员的前端。

用户将要把他们的一些shell / python脚本上传到要运行的容器中。

为了保持我的容器正常工作,我的计划是将脚本发送到同级容器,然后该兄弟容器将运行它们并将响应发送给我。用户的脚本应该能够下载外部软件包等。

然后我要对兄弟容器进行“清理”

问题

一旦运行完用户脚本,同级容器是否可以从其源映像重新启动?这样,用户可以获得一个始终干净的容器来运行其脚本。

注意

如果我用这种解决方案完全把错误的树缠住了,请告诉我。我正在尝试一些奇怪的功能,并且可能会从错误的角度来解决这个问题。

编辑1(其他方法以及为什么我不喜欢它们)

我想到的两种选择是在容器上放置前端运行容器。或者让同级容器在其上运行docker容器。但是这两个解决方案遇到了Docker-in-docker的难题。另一种解决方案可能是提高前端容器的权限,直到它可以动态地使同级容器运行脚本。但是,我担心这可能导致给前端容器不必要的高权限。

编辑2(我发现的有关重新启动容器的所有文档)

我知道autorestart上的文档,但是我认为这不会清除容器中的物品。例如,如果文件已下载到文件上。

1 个答案:

答案 0 :(得分:1)

我的回答对安全性有严重影响。

如果将Docker套接字从主机映射到主容器,则可以从主容器控制同级容器。

docker run -v /var/run/docker.sock:/var/run/docker.sock ...

现在,您可以从主容器内部完全控制docker引擎。您可以startstop等兄弟姐妹容器,并生成新的(干净的)兄弟姐妹。 但是请记住,这实际上是在授予主机根权限给您的主容器。