在一个容器里
可以创建匿名卷
在语法(VOLUME /build
)中Dockerfile
要么
volumes
具有/build
输入的以下语法
cache:
build: ../../
dockerfile: docker/dev/Dockerfile
volumes:
- /tmp/cache:/cache
- /build
entrypoint: "true"
我的理解是,/build
在容器进入Exited
状态后,两种方法都可以使音量也可用。
卷是匿名的,因为/build
指向/var/lib/docker/volumes
Docker主机中某个随机的新位置(目录中)
我看到匿名卷比命名卷(如/tmp/cache:/cache
)更安全。
因为/tmp/cache
位置很容易受到攻击,因为该位置被多个Docker容器使用的可能性更大。
1)
为什么不鼓励匿名使用卷?
2)
是
VOLUME /build
在 Dockerfile
与…不同
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消息传递。