一般情况是,我们有一个服务器集群,并且我们想使用Docker在服务器集群之上建立虚拟集群。
为此,我们为不同的服务(Hadoop,Spark等)创建了Dockerfile。
但是,关于Hadoop
HDFS服务,我们面临这样一种情况,即Docker容器可用的磁盘空间等于服务器可用的磁盘空间。我们希望限制每个容器的可用磁盘空间,以便我们可以动态生成具有一定存储大小的附加数据节点,以构成HDFS文件系统。
我们的想法是使用以ext4格式格式化的环回文件,并将其挂载到我们用作docker容器中卷的目录上。但是,这意味着很大的性能损失。
我发现了另一个关于SO的问题(限制Docker容器的磁盘大小和带宽),但是答案已有将近1.5年的历史了-就Docker的发展速度而言-是古老的。
哪种方式或存储后端将使我们能够
您可以在内存和CPU上指定运行时约束,但不能指定磁盘空间。
已要求设置对磁盘空间的约束的功能(问题12462,问题3804),但尚未实现,因为它取决于基础文件系统驱动程序。
此功能将在某个时候添加,但不是立即添加。现在添加此功能要困难一些,因为许多代码块正在从一个地方移到另一个地方。完成这项工作之后,应该更容易实现此功能。
请记住,不能将配额支持作为hack添加到devicemapper,它必须为尽可能多的存储后端实现,因此必须以一种易于实现的方式来实现配额支持存储后端。
2016年8月更新:如下所示,并且在发行号3804中,此后PR
24771
和PR
24807
被合并。docker run
现在允许为每个容器设置存储驱动程序选项
$ docker run -it --storage-opt size=120G fedora /bin/bash
此(大小)将允许在创建时将容器rootfs大小设置为120G。
此选项仅适用于devicemapper,btrfs,overlay2,windowsfilter和zfs图形驱动程序
我需要访问非运行docker容器的文件系统。实现这一目标的最佳方式是什么? 谢谢
问题内容: 我注意到docker,我需要了解容器内部发生的情况或其中存在的文件。一个示例是从docker索引下载图像-您不知道该图像包含什么,因此无法启动该应用程序。 理想的情况是能够使用它们或等效方法。是否有工具可以做到这一点,或者我对docker的构想在认为我应该能够做到这一点上是错误的。 问题答案: UPDATE 最简单的方法:使用docker exec Docker 1.3或更高版本支持行
我注意到在使用docker时,我需要了解容器中发生了什么,或者容器中存在什么文件。一个例子是从docker索引下载图像--您不知道图像包含了什么,所以不可能启动应用程序。 理想的情况是能够将ssh转换到它们或等价物中。是否有一个工具可以做到这一点,或者是我对docker的概念化错误地认为我应该能够做到这一点。
「Allen 谈 Docker 系列」 DaoCloud 正在启动 Docker 技术系列文章,每周都会为大家推送一期真材实料的精选 Docker 文章。主讲人为 DaoCloud 核心开发团队成员 Allen(孙宏亮),他是 InfoQ 「Docker 源码分析」专栏作者,已出版《Docker 源码分析》一书。Allen 接触 Docker 近两年,爱钻研系统实现原理,及 Linux 操作系统。
本文向大家介绍Docker 限制容器可用的CPU的方式,包括了Docker 限制容器可用的CPU的方式的使用技巧和注意事项,需要的朋友参考一下 默认情况下容器可以使用的主机 CPU 资源是不受限制的。和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源耗尽,从而导致更大的灾难。本文将介绍如何限制容器可以使用
因此,我已经成功地从注册表下载并运行了dockerfile/nginx映像。我现在如何通过在其上启动bash终端来访问其文件系统? 也许我在概念上遗漏了一些东西。我需要ssh进入它吗?谢谢