首页 \ 问答 \ Docker,装载卷为只读(Docker, mount volumes as readonly)

Docker,装载卷为只读(Docker, mount volumes as readonly)

我正在和Docker一起工作,我想安装一个变化很大的dyanmic文件夹(所以我不必为每个执行的docker做这个代码,这样做太贵了),但是我希望该文件夹是只读的。 将文件夹所有者更改为其他工作,但是chown需要root访问,我不希望暴露给应用程序。

当我使用-v标志挂载时,它给出了我给出的任何用户名,我在docker映像中创建了一个非root用户,但是所有者作为运行docker的用户的卷中的所有文件都会更改为用户I从命令行给出,所以我不能做只读文件和文件夹。 我该如何防止这种情况?

我还添加了mustafa ALL=(docker) NOPASSWD: /usr/bin/docker ,所以我可以通过终端更改到另一个用户,但是文件仍然有我的用户的权限。


I am working with Docker,and I want to mount a dyanmic folder that changes a lot (so I do not have to make dockers for each ones execution, which would be too costly), but I want that folder to be readonly. Changing the folder owners to someone else works however chown requires root access, which I would not prefer to expose to an application.

When I use -v flag to mount, it gives whatever the username I give, I created a non root user inside the docker image, however all the files in the volume with the owner as the user that ran docker, changes into the user I give from commandline, so I cannot make readonly files and folders. How can I prevent this?

I also added mustafa ALL=(docker) NOPASSWD: /usr/bin/docker, so I could change to another user via terminal, but still the files have permissions for my user.


原文:https://stackoverflow.com/questions/19158810
更新时间:2023-03-19 19:03

最满意答案

根据我的理解,您正在寻找的是RUM(真实用户监控)。 有许多工具可以测量浏览器端的性能,并将它们发送回服务器。

有一个名为Boomerang的开源项目: https//www.tollmanz.com/rum-monitoring-boomerang-boomcatch-datadog/

以下是RUM众多SAS工具之一: https//newrelic.com/browser-monitoring 。 你也可以看看Soasta,Cedexis,Webperf.io,......

如果您想构建自己的解决方案,因为这些解决方案不符合您的需求,您可能不需要与具有Web套接字的服务器进行实时同步。 只需使用简单的HTTP请求将信标发送回服务器即可。


From what I understand, what you are looking for is called RUM (Real User Monitoring). There is a bunch of tools that can measure browser-side performances, and send them back to a server.

There is an open source project called Boomerang: https://www.tollmanz.com/rum-monitoring-boomerang-boomcatch-datadog/

Here is one of the numerous SAS tools for RUM: https://newrelic.com/browser-monitoring. You can also look at Soasta, Cedexis, Webperf.io, ...

If you want to build your own solution because these solutions don't fit your needs, you probably don't need real time synchronization with the server with web sockets. Just send a beacon back to the server with a simple HTTP request.

相关问答

更多
  • 根据我的理解,您正在寻找的是RUM(真实用户监控)。 有许多工具可以测量浏览器端的性能,并将它们发送回服务器。 有一个名为Boomerang的开源项目: https : //www.tollmanz.com/rum-monitoring-boomerang-boomcatch-datadog/ 以下是RUM众多SAS工具之一: https : //newrelic.com/browser-monitoring 。 你也可以看看Soasta,Cedexis,Webperf.io,...... 如果您想构建自己 ...
  • 在很多情况下,恐怕最好的答案是两个 。 正如Ricebowl所言,永远不要相信客户。 但是,如果您信任客户,我觉得这几乎总是一个问题。 如果您的应用程序值得写作,那么值得妥善保护。 如果有人可以通过编写自己的客户端和传递数据来打破它,那就是不好的事情。 因此,您需要在服务器上进行验证。 不幸的是,如果您验证服务器上的所有内容,通常会使用户的用户体验不佳。 他们可能会填写一份表单,只能发现他们输入的一些内容不正确。 这可能是为“互联网1.0”而工作的,但是人们对当今互联网的期望更高。 这可能会使您写出相当多的 ...
  • 好问题(尽管标签不好,正如已经指出的那样)。 如果在服务器上完成连接,连接肯定会更快,但是如果每个表只有1,000行,那么结果集将是1,000,000行,并且必须将这些行发送回客户端。 如果你加入客户端,你只能发回2000行。 根据你在客户端需要做的事情,可能值得做单独的查询来减少客户端和服务器之间的流量。 再次,用JavaScript加入这两套也不会很快。 所以这里是一个很好的答案:这一切都取决于结果集大小; 你必须尝试。 请注意,此答案仅适用于CROSS JOIN 。 所有其他的连接类型最好在服务器上完 ...
  • 要清除防火墙,您应该使用您使用的相同协议和端口进行测试,并在应用程序内部创建一种新类型的消息,应在服务器读取后立即响应:您应该对ping进行编程措施。 然后,客户端将测量旅行中所花费的时间并计算您的ping并将其转发回您的服务器。 如果某些ISP提供ICMP协议数据包比其QoS服务器上的其他数据包具有巨大优势,人工创建(伪造)较低延迟,这也可以提供更好的读数。 而且,您不必担心防火墙不允许您的ICMP数据包,因为您必须被允许在您使用的标准端口上进行连接。 此外,大多数游戏以这种方式工作(半条命,帝国时代等) ...
  • 假设您在Windows域中。 您可以将服务器配置为使用Windows身份验证并限制可以访问Web服务的用户。 对于性能测量 - 如果您从浏览器访问Web服务,asp.net将向您显示示例请求和响应,您可以计算出消息的站点并使用带宽来计算它应该花多长时间。 您还可以调用Web服务并使用秒表类来测量所需的时间。 Assuming you are on a windows domain. You could configure the server to use windows authentication an ...
  • 您可以在网格上使用服务器端分页 ,每页只加载10个条目 如果用户想要查看整个网格,您可以提供“下载为pdf”文件选项 您可以进一步使用带有服务器端分页的客户端网格来改善访问时间。 我认为使用服务器端分页的gridview会很好。 如果您需要一次显示所有记录,那么这是一个单独的问题。 You can use server side paging on your grid & just load 10 entries per page You can provide a 'download as pdf' fi ...
  • 对于我的单元测试,我创建了一小段代码来执行此操作(在UNIT测试的命令下)。 这个想法是,无论你有什么代码最终发送一个请求说NSURLConnection,你随机只是不提交它,并在几秒钟之后发出一个“假”返回,错误为“超时”。 同样,您可以代替立即调度连接,将其放在dispatch_after块中,并添加固定或随机延迟。 以上只是少数代码,可以轻松实现。 我有条件地编译了我的(也就是说,它仅在UNIT测试时定义的MACRO背后)。 For my unit tests, I created a small b ...
  • 微服务架构涉及许多可能具有层次依赖性的服务。 例如,服务A依赖于服务B,服务B依赖于服务C等。 同样,每个服务可以有多个实例,并且它们的部署位置可能会动态变化。 例如,Service C获得的命中次数太多,您可以动态扩展/缩小此服务。 通常,最终用户不能直接访问任何这些微服务。 它只能通过位置固定的边缘服务访问,比如www.microservice.com/apis,并且负责进行身份验证,速率限制等。因此,所有服务调用都将通过边缘服务和负载此阶段的平衡主要是使用硬件负载平衡器或Amazon ELB实现的。 ...
  • 为了衡量性能,我将创建一个Web服务客户端,记录每次调用的精确时间测量值,以便稍后进行分析。 看看System.nanoTime以获得准确的时间。 我会选择REST和SOAP来进行适当的比较。 如果你有一个框架可以同时执行这两个操作,那么测试以下组合会很有趣: REST:仅执行REST的框架 SOAP:仅执行SOAP的框架 REST:只有REST和SOAP的框架 SOAP:只有REST和SOAP的框架 然后,您可以评估框架性能,并可能在REST和SOAP之间绘制一些关于性能的一般信息。 To measure ...
  • 如果你想实时显示被屏蔽的消息,那么在两端都要实现它。 客户端将负责显示消息并同时将其发送到服务器(异步进程)以进行屏蔽并保存到数据库。 确保两端的屏蔽算法相同,以便实时显示的数据和从数据库中提取的数据将是相同的。 If you want to display the masked message realtime then implement it on both end. Client side would take care of displaying the message and simultane ...

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)