Tag: cgroups

使用cgroup_new_cgroup创buildcgroup时出现错误50007

我有一个进程在docker container中运行(docker将进程放在cgroup btw中)。 过程分叉,我想把一些forks进入cgroups 。 我将下面的代码添加到我的程序中: cgroup_init(); struct cgroup *my_cgroup = cgroup_new_cgroup(cg_name); cgroup_add_controller(my_cgroup, "cpu"); int cgroup_cr = cgroup_create_cgroup_from_parent(my_cgroup, 0); cgroup_r是50007(“Cgroup,operation not allowed”)。 我不知道这是为什么? 有什么configuration我需要改变? 是否需要一个能力 ?

docker在/ sys / fs / cgroups / devices中的容器权限

docker集装箱启动时,我想允许一些设备访问。 当一个容器启动时,它将在“/ sys / fs / cgroup / devices / docker /”目录中启动。 如下所示: “/ SYS / FS / cgroup中/装置/搬运工/ 685e63fdccfaa5212317652af842b57e63ec674757d1a412e2913b7c4b6b6943” 现在当我检查许可, ls -l / sys / fs / cgroup / devices / docker / 685e63fdccfaa5212317652af842b57e63ec674757d1a412e2913b7c4b6b6943 它始终是根源。 是否有可能让用户访问该容器? 或者至less是docker组? 提前致谢。 我尝试手动更改“泊坞窗”目录权限(与-R) chown用户名和chgrp为“docker”组。 但是,当容器启动时,它具有“根”权限。

如何在没有cgroup的情况下安装docker

我有自定义编译的debian 7 wheezy我想运行docker。 我不想在stream程上设置任何资源限制,这是我的产品的要求。 我们可以安装不带cgroup的docker来避免资源限制。

设置cgroup_enable = memory的内核参数

我在一个RHEL系统,我想添加以下参数,以便我可以有我的datadog + docker集成( https://github.com/DataDog/docker-dd-agent#cgroups )。 我需要设置以下内核参数: cgroup_enable=memory swapaccount=1 我打算使用像这样的东西: cgset -r cgroup_memory=enable 但我得到的错误wrong -r parameter (cgroup_enable=memory)

在裸机上运行Docker是否可维护?

我想创build将作为我的平台上的docker集装箱分发的Web服务。 在物理机器上运行Docker与在VPS中运行Docker相比更快,因为虚拟OS层没有开销。 但是,当环境中的软件崩溃时,VPS更易于维护。 我想知道如果Docker容器中的环境被黑客攻击,或者由于缺陷/exception或者外部攻击而破坏操作系统,会发生什么。 它可以影响主机系统,并导致整个机器损坏或崩溃? 你会推荐在物理上还是在虚拟机中运行Docker?

Docker中的variablescgroups参数

我与Docker合作设置cgroup有一个问题。 我有我自己的可运行的Docker镜像 docker run exp 但是我想要的是,每个想要运行我的图像的用户都必须在图像中的脚本运行之前设置cgroups参数。 我知道存在这样的东西: $ docker run -it -m 300M exp 但这不是我要找的。 我真正想要的是这样的。 如果用户input docker run exp 然后显示: inputcgroups参数 ,然后启动图像。 我真的想强迫用户input他自己的要求cgroups。 我真的不知道如何做到这一点。 我想过一些bash脚本,它在每个想要运行我的docker镜像的用户电脑的cgroup中创build新的组,但是我仍然不确定它是否可能。 我会很高兴的任何帮助。 谢谢。

谷歌/ cadvisor:最新的图像监视器容器运行错误

我在bugzilla.redhat.com上面的“devicemapper”find了下面的错误。 它让我安装“device-mapper-persistent-data”包。 但是,当我安装它,我收到以下错误。 我试图用这个链接来解决错误,但是,我仍然没有设法解决它。 这是我试过的: 1. update the libcontainer dependency 2. look at all cgroup mounts 这是错误: [root@slave712 ~]# docker run \ –volume=/:/rootfs:ro \ –volume=/var/run:/var/run:rw \ –volume=/sys:/sys:ro \ –volume=/var/lib/docker/:/var/lib/docker:ro \ –publish=8080:8080 \ –detach=true \ –name=cadvisor \ google/cadvisor:latest Unable to find image 'google/cadvisor:latest' locally latest: Pulling from google/cadvisor e110a4a17941: Pull complete e17fa94aae07: Pull complete 7097ce2382c0: Pull […]

将Docker Cgroup中的线程标识转换为主机线程标识

假设我知道$ CONTAINER_PARENT_PROCESSID及其相应的$ HOST_PARENT_PROCESSID,是否有任何直接的方法将cgroups线程ID映射到主机线程ID。 容器中的线程ID是'ps -T $ CONTAINER_PARENT_PROCESSID'输出的一部分,主机中的线程ID是'ps -T $ HOST_PARENT_PROCESSID'输出的一部分。

在Python中获得nproc命令的相同输出

当使用cgroups来限制可用的CPU数量,比如在Docker中使用–cpuset-cpus标志时, nproc命令会在考虑到这个限制的情况下打印出可用的CPU数量。 Python的multiprocessing.cpu_count()打印主机中的CPU数量,而不考虑cgroup的限制。 应该调用Python的哪个函数来得到nproc返回的相同数字? 我希望避免使用Python运行nproc二进制文件。

docker集装箱的cgroup的一些path丢失

我使用cadvisor来获得我的docker集装箱的CPU使用量,但总是非常小(约0.001),这应该是错误的,因为它是一个生产工人集装箱,它应该超过docker以外的htop的10%。 容器中没有任何进程。 但它有四个过程 我发现容器的cgroup很奇怪,如: $ cat /proc/14996/cgroup 10:pids:/docker/4d7976bc5814e85cc793cc4926c09c150a0e8bb453b8bc01856e8ac0ef17a34a 9:perf_event:/docker/4d7976bc5814e85cc793cc4926c09c150a0e8bb453b8bc01856e8ac0ef17a34a 8:net_cls,net_prio:/docker/4d7976bc5814e85cc793cc4926c09c150a0e8bb453b8bc01856e8ac0ef17a34a 7:freezer:/docker/4d7976bc5814e85cc793cc4926c09c150a0e8bb453b8bc01856e8ac0ef17a34a 6:devices:/ 5:memory:/ 4:blkio:/ 3:cpu,cpuacct:/ 2:cpuset:/docker/4d7976bc5814e85cc793cc4926c09c150a0e8bb453b8bc01856e8ac0ef17a34a 1:name=systemd:/system.slice/docker.service/docker/4d7976bc5814e85cc793cc4926c09c150a0e8bb453b8bc01856e8ac0ef17a34a 我不知道如何解决这个问题,但是如果有必要,我可以提供更多的信息。