理解Docker ulimit参数

  • ulimit

    ulimit本是一个Linux内的命令。最初设计是用来限制进程对资源的使用情况的,因为早期的系统系统资源包括内存,CPU都是非常有限的,系统要保持公平,就要限制大家的使用,以达到一个相对公平的环境。

    # 使用格式
    >>> ulimit [options] [limit]
    >>> ulimit -n 1024 # 打开文件描述符的数量
    >>> ulimit -n # 查看相应参数
    1024
    

    Docker在1.6版本之后才支持;之前的版本,Docker Container继承来自Docker Daemon的ulimit设置。

    ulimit 可以设置当前进程以及其子进程的资源使用量,此处讨论我们启动的docker 容器的资源限制。

    ulimit使用可以参考ulimit 使用docker run 参数介绍

  • Docker修改ulimit的三种方案

  • 1. docker run --ulimit
    docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n"
    
  • 2. docker服务的默认设置
    >>> vim /usr/lib/systemd/system/docker.service
    [Service]
    LimitNOFILE=1048576
    LimitNPROC=1048576
    LimitCORE=infinity
    >>> systemctl daemon-reload
    >>> systemctl restart docker
    
  • 3. daemon.json
    >>> vim /etc/docker/daemon.json
    {
            "default-ulimits": {
                    "nofile": {
                            "Name": "nofile",
                            "Hard": 64000,
                            "Soft": 64000
                    }
            }
    }
    >>> systemctl restart docker
    
  • Reference

  1. ulimit 与 容器
  2. 深入理解Docker ulimit
  3. 系统技术非业余研究
  4. Docker ulimit配置
  5. ulimit的一些理解和在docker中的经验
发布了857 篇原创文章 · 获赞 1291 · 访问量 92万+

猜你喜欢

转载自blog.csdn.net/The_Time_Runner/article/details/105210469
今日推荐