我有一台运行Ubuntu 14.04的物理主机。 它具有100G的磁盘和100M的networking带宽。 我安装了Docker并启动了10个容器。 我想限制每个容器最多10G的磁盘和10M的networking带宽。 在通过官方文档并在互联网上search之后,我仍然无法find一种方法来为容器分配指定大小的磁盘和networking带宽。 我认为这可能不会直接在Docker中,也许我们需要绕过Docker。 这是否意味着我们应该使用“基础”的东西,比如LXC或者Cgroup? 任何人都可以给一些build议? 编辑: @Mbarthelemy,你的build议似乎工作,但我仍然有一些关于磁盘的问题: 1)是否可以为每个容器分配其他大小(如20G,30G等)? 你说它在Docker中是硬编码的,所以看起来不可能。 2)我使用下面的命令启动Docker守护进程和容器: docker -d -s devicemapper docker run -i -t training/webapp /bin/bash 那么我使用df -h来查看磁盘使用情况,它会给出以下输出: Filesystem Size Used Avail Use% Mounted on /dev/mapper/docker-longid 9.8G 276M 9.0G 3% / /dev/mapper/Chris–vg-root 27G 5.5G 20G 22% /etc/hosts 从上面我想一个容器可以使用的最大磁盘仍然大于10G,你觉得呢?
以下是我对Docker撰写的理解: 您可以“缩放”服务,以便一次在多个容器中运行它。 如果将服务A链接到服务B,则服务A可以访问运行服务B的容器。 我的理解是否正确,如果有的话,如果有多个容器运行服务,那么链接在哪里连接?
这可能在Linux上运行Windows容器 ? 这个场景是基于一个用.NET编写的解决scheme(旧的networking),而Linux用户则希望用Docker来运行这个解决scheme,以在localhost上提供一个net462编写的API。 我正在使用Docker for Windows的testing版 如果没有,那为什么Windows可以运行linux容器而不是反之呢? 编辑: 一段时间过去了,这个问题很受欢迎。 我想在这里添加一个说明,解决方法是使用新的netstandard。 它允许我将4.6.2框架包装到新的库中。
我们可以使用docker来拉取不同的图像。 和这些图像是不同的Linux分布。 但是无论运行哪一个linux发行版docker,docker都可以像在虚拟机中一样运行这些不同的linux发行版。 我知道docker使用aufs来控制不同的读写访问级别。 所以它可以在主机上重新使用一些文件。 但是,当我在arch linux运行docker时,docker如何在容器中运行apt-get命令? imagegs是否包含apt-get二进制文件? 但不同的Linux发行版有不同的库和软件版本。 即使configuration文件是不同的。如何docker可以“运行”一个Ubuntu的拱桥Linux?
为什么Docker中的-d和–rm相互冲突? $ docker run -d –rm image Conflicting options: –rm and -d 我有一些运行单元/function/集成testing的容器。 Docker容器启动,运行testing,然后停止。 我把它们分开运行,因为我只关心结果,但是我也希望容器在容器退出后被移除。 什么将是一个很好的方法来做到这一点?
我正在阅读关于docker的一个很好的问题 – 答案有docker的实现细节的概述。 我想知道是否有这样的事情可以在Windows平台上做。 Docker的替代品是否存在? 理论上可以使用其他(基于Windows)组件来构build它吗? 更新1 : 稍微相关的问题(沙盒): Windows平台是否有一个轻量级的可编程Sandbox API? Update2 :: 有关如何在Windows上安装docker(无关)的信息 – 官方文档对如何使用boot2docker虚拟机设置环境有很好的说明。
我在Dockerfile使用RUN指令来安装rpm RUN yum -y install samplerpm-2.3 但是,我想通过值“2.3”作为一个参数。 我的RUN指令应该是这样的: RUN yum -y install samplerpm-$arg $arg=2.3
在我的Dockerfile中 ,我想定义 稍后可以在Dockerfile中使用的variables 。 我知道ENV指令,但我不希望这些variables是环境variables。 有没有办法在Dockerfile作用域声明variables ?
我想在我的CentOS 7.1中testingdocker,我得到这个警告: [root@docker1 ~]# docker run busybox /bin/echo Hello Docker Usage of loopback devices is strongly discouraged for production use. Either use `–storage-opt dm.thinpooldev` or use `–storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning. Hello Docker 我想知道原因以及如何抑制这个警告。 CentOS实例在vagrant创build的virtualbox中运行。
我把下面的区域设置代码放到我的dockerfile中, FROM node:4-onbuild # Set the locale RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 但它给了我错误 /bin/sh: 1: locale-gen: not found The command '/bin/sh -c locale-gen en_US.UTF-8' returned a non-zero code: 127 任何想法?