Tag: 调度

Docker容器中的cron任务没有被执行

我有这个Dockerfile (我正在使用miniconda只是因为我想安排一些python脚本,但它是一个debian:jessie docker镜像): FROM continuumio/miniconda:4.2.12 RUN mkdir -p /workspace WORKDIR /workspace ADD volume . RUN apt-get update RUN apt-get install -y cron ENTRYPOINT ["/bin/sh", "/workspace/conf/entrypoint.sh"] 保持容器活着的脚本entrypoint.sh是这样的: #!/usr/bin/env bash echo ">>> Configuring cron" service cron start touch /var/log/cron.log mv /workspace/conf/root /var/spool/cron/crontabs/root chmod +x /var/spool/cron/crontabs/root crontab /var/spool/cron/crontabs/root echo ">>> Done!" tail -f /var/log/cron.log 从有关supervisor的docker文档( https://docs.docker.com/engine/admin/using_supervisord/ )看起来这可能是一个选项以及bash脚本选项(就像我的例子),这就是为什么我决定去bash脚本并忽略主pipe。 而cron的细节/workspace/conf/root是这样的: […]

为单个用户限制docker容器的资源

对于docker集装箱,您可以在docker run设置CPU限制(例如–cpu-quota –cpu-shares )和内存限制( –memory )。 也可以通过–ulimit设置用户的全局nproc限制。 假设两个不同的用户正在一个容器中运行工作负载。 有没有一种方法来为一个特定的docker集装箱内的个人用户(而不是系统全局)设置限制? 例如,使用–ulimit nproc=100 ,不可能指定允许用户在–ulimit nproc=100容器内运行最多n个进程。 例如,如果用户已经在容器外运行了40个进程,则允许他在容器内运行60个进程。 如果你设置ulimit nproc=40并且有40个进程在容器外面运行,他将不被允许在容器内启动一个新的进程。 所以我正在寻找一种方法来强制CPU,内存和进程号码限制在一个单独的docker容器的用户基础上(即使没有这些限制的其他docker容器在同一个系统上运行)。 为每个用户启动泊坞窗容器不是一个选项。