正如标题所说,我需要运行一个不可信的C ++程序到我的prod服务器。 我正在尝试与docker工人,但有一些事情,我真的不清楚:
docker run -d <MY IMAGE ID> /root/myprogram & ,它似乎正常工作 但我有一个疑问:因为不可信的c + +程序,我必须运行使用数据库,并且因为它每隔10分钟更新db值…我必须每10分钟提交更改到图像,以避免潜在的数据失利?
如果是这种情况,我必须切换到另一个虚拟化环境…..
另外,我正在尝试pipe理一个非root用户的容器,任何人都试过这个,并有评论/build议呢?
谢谢。
您不必在Docker容器内部以“root”身份运行,尽pipe您可以(理论上)按照您的意愿安全地执行此操作。
通常情况下,当你想保存持久数据时,你需要的是一个Docker卷,它允许你从Docker容器中的“主机”文件系统“挂载”一个文件夹。 像数据库写入文件的文件夹一样。 如果您在主机上select一个安全的文件夹并将其视为“危险”(显然不运行在主机上显示的文件,它们是不可信的),这对于不可信的代码是相当安全的。
以下是如何使用卷 :
docker run -d myimagename -v /var/lib/myimages/untrusted/data/storage/on/host/:/path/in/container/for/db/ container-command
在技术上,在Linux中,Docker并不像你想象的那样是虚拟化 – 它不是虚拟机。 这更像是一个FreeBSD jail(chroot和进程隔离)。