当前位置: 首页 > 面试题库 >

最佳做法-匿名卷与绑定挂载

欧阳玺
2023-03-14
问题内容

在一个容器里

可以创建匿名卷

在语法(VOLUME /build)中Dockerfile

要么

volumes具有/build输入的以下语法

cache:
  build: ../../
  dockerfile: docker/dev/Dockerfile
  volumes:
    - /tmp/cache:/cache
    - /build
  entrypoint: "true"

我的理解是,/build在容器进入Exited状态后,两种方法都可以使音量也可用。

卷是匿名的,因为/build指向/var/lib/docker/volumesDocker主机中某个随机的新位置(目录中)

我看到匿名卷比命名卷(如/tmp/cache:/cache)更安全。

因为/tmp/cache位置很容易受到攻击,因为该位置被多个Docker容器使用的可能性更大。

1)

为什么不鼓励匿名使用卷?

2)

VOLUME /buildDockerfile

与…不同

volumes: 
 - /build

docker-compose.yml文件中?是否有一种情况,我们需要同时提及两者?


问题答案:

实际上,鼓励/build使用匿名卷()而不是使用绑定装载():/tmp/cache:/cache

与绑定安装相比,卷具有几个优点:

  • 与绑定安装相比,卷更易于备份或迁移。
  • 您可以使用Docker CLI命令或Docker API管理卷。
  • 卷在Linux和Windows容器上均可工作。
  • 可以在多个容器之间更安全地共享卷。
  • 卷驱动程序使您可以将卷存储在远程主机或云提供商上,以加密卷内容或添加其他功能。
  • 新卷的内容可以由容器预先填充。

关于第二个问题,是的。您可以在docker-compose文件或Dockerfile中创建匿名卷。无需在两个地方都指定。



 类似资料:
  • VOLUME 定义匿名卷 格式为: VOLUME ["<路径1>", "<路径2>"...] VOLUME <路径> 之前我们说过,容器运行时应该尽量保持容器存储层不发生写操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中,后面的章节我们会进一步介绍 Docker 卷的概念。为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 Dockerfile 中,我们可以

  • 问题内容: 对于我的Web应用程序(PHP / MYSQL),我显示了一个项目列表,并在每行显示一个链接以删除该项目。现在,链接是 如果我想改用POST …我该怎么做(这是一个动态生成的列表)?我可以不使用表格发送POST数据吗? 或者,对于每个项目,我都要做: 并设置提交按钮的样式使其看起来像原始链接? 我不熟悉php CURL或REST,它们会帮助解决这个问题吗? 问题答案: 通常,让GET请

  • 问题内容: 在我一直在构建的应用程序中,我们相当依赖于SharedPreferences,这使我思考了访问SharedPreferences时的最佳实践。例如,许多人说通过此调用可以访问它: 但是,这似乎很危险。如果您有依赖于SharedPreferences的大型应用程序,则可能会有密钥重复,尤其是在使用某些也依赖SharedPreferences的第三方库的情况下。在我看来,更好的使用方法是:

  • 问题内容: 当前,正在讨论具有单个sql连接体系结构的优缺点。 为了详细说明我们正在讨论的是,在应用程序创建时打开一个sql连接,在应用程序关闭或错误关闭该sql连接时。根本不创建另一个连接,而只使用那个与数据库进行通信。 我们想知道社区的想法。 问题答案: 一旦您在不确定的时间内不再需要连接,请立即将其关闭。这样,连接将返回到连接池(如果启用了连接池),并且可以被其他人(重新使用)。 (连接是昂

  • 问题内容: 在研究JSON与XML的问题时,我遇到了这个问题。现在,选择JSON的原因之一是Java的易于转换,即使用。现在,从安全角度来看,这立即使我感到潜在的问题。 因此,我开始对JSON的安全性方面进行研究,并在此博客文章中就JSON的安全性不如人们认为的那样进行了研究。这部分突出: 更新: 如果您正确地执行JSON 100%,那么您只会在顶层拥有对象。数组,字符串,数字等都将被包装。然后,

  • 问题内容: 多线程Java应用程序中进行进程间通信的最佳方法是什么? 它应该是高性能的(因此请不要使用JMS),易于实现且可靠,以便对象和数据只能绑定到一个线程? 任何想法欢迎! 问题答案: 假设场景1是JVM,那么实际上应该是多个线程,尤其是各种Queue实现,都是java.util.concurrent。但是,在此之上的抽象可能很好,Jetlang看起来非常有趣,轻量级的Java消息传递。