【问题标题】:Possible to fake cpu and memory inside a Docker container?可以在 Docker 容器内伪造 CPU 和内存吗?
【发布时间】:2022-06-15 06:25:50
【问题描述】:

我有一个 CICD 服务器,它构建 Docker 映像并将它们推送到映像存储库。它真正做的只是docker build && docker push,它不运行这些图像的任何工作负载,因此它是一个小型的云实例。

我想用它来构建一个映像,它通过RUN yum install -y somepackage.rpm 安装一个包,但是我正在安装的包会检查 cpu 和内存,当小于 X cpu 内核时它拒绝安装并且存在 Y gigs 内存,而我的 CICD 服务器不符合这些阈值。当我在另一台服务器上实际运行此映像/工作负载时,我需要满足这些阈值是有道理的,但是当我所做的只是构建映像时,我想绕过这个限制。

是否可以在构建上下文中伪造 cpu 内核和内存?当主机只有 2 个时,我能否以某种方式暴露 8 个 CPU 或容器内的任何东西?

【问题讨论】:

    标签: docker


    【解决方案1】:
        It depends on how it does the check.  Often it will look at 2 things. 
    

    free -m(或-g)和 猫 /proc/cpuinfo

    然后它会用 grep 搜索一些东西,所以你用 echo 伪造输出

    并用适当的数量替换mem和proc

    echo " 总使用的免费共享缓冲区/可用缓存 Mem: 32417152 12002948 16547220 48080 3866984 19974332 交换:12582908 0 12582908"
    将此脚本粘贴到命令行中,然后运行您的安装。

    cd /usr/bin mv nproc nproc2 
    mv free free2 
    echo "echo 16">nproc 
    chmod +x nproc 
    echo echo "              total        used        free      shared          buff/cache   available">free 
    echo echo " Mem:             64  
    0          48           0          11          39 " >>free 
    echo    echo "Swap:            11           0          11" >>free 
    chmod +x free
    

    【讨论】:

    • CentOS7 使用 nproc。将此脚本粘贴到命令行中,然后运行您的安装。 cd /usr/bin mv nproc nproc2 mv free free2 echo "echo 16">nproc chmod +x nproc echo echo "总使用的免费共享缓冲区/缓存可用">free echo echo " Mem: 64 0 48 0 11 39 " >>免费 echo echo "Swap: 11 0 11" >>free chmod +x free
    • reply-to-quote 格式不正确。你想达到什么目的?您是否希望部分答案像终端一样以固定宽度字体呈现?
    猜你喜欢
    • 1970-01-01
    • 2017-09-25
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2017-12-13
    • 1970-01-01
    • 2014-01-11
    相关资源
    最近更新 更多