我正在尝试使用Docker并理解有关卷使用的概念。我有一个tomcat应用程序,它将文件写入特定的卷。
我编写了一个ENTRYPOINT
为“dosomething.sh
”
我对入口点脚本的问题是..
在“dosomething.sh
”中,我可能会有一个恶意代码来删除卷上的所有文件!
有没有办法防范它,特别是因为,我正计划与我的开发团队共享这个dockerfile和脚本,并且我必须采取的生产角色看起来很可怕!
有一种想法是对于所有具有卷的容器都没有“ENTRYPOINT
”
有经验的人,请告知你如何处理这个......
答案 0 :(得分:1)
如果您使用data volume container隔离卷,则此类容器永远不会运行:它们仅创建(docker create
)。
这意味着您需要将该数据卷容器安装到其他容器中,以便它们访问该卷
这有点缓解了危险的入口点:简单的docker run无法访问任何内容,因为没有设置-v
安装卷选项。
另一种方法是至少将脚本声明为CMD
,而不是ENTRYPOINT
(ENTRYPOINT
为[ "/bin/sh", "-c" ]
。这样,码头工作者就更容易了使用替代命令运行(作为参数传递,覆盖CMD
),而不是总是执行脚本只是因为它是ENTRYPOINT
。