【问题标题】:docker-compose restart connection pool fulldocker-compose 重新启动连接池已满
【发布时间】:2018-04-03 20:32:14
【问题描述】:

我和我的团队正在使用 docker-compose 将我们的一些基础架构转换为 docker。一切似乎都很好,我唯一的问题是重新启动它给我一个连接池已满错误。我试图弄清楚是什么原因造成的。如果我删除 2 个容器或(1 个完整的设置)它工作正常。

关于我正在尝试做的事情的一些背景知识。这是一个 Ruby on Rails 应用程序,它使用多种不同的配置为组织内的不同团队运行。服务器总共运行 14 个不同的容器。主机服务器操作系统是 CentOS,撰写命​​令是从同一网络上的 MacBook Pro 运行的。我也尝试过使用 boot2docker 虚拟机,结果相同。

这是命令的详细输出(使用 boot2docker vm) https://gist.github.com/rebelweb/5e6dfe34ec3e8dbb8f02c0755991ef11

感谢任何帮助或指点。

【问题讨论】:

    标签: ruby-on-rails ruby docker docker-compose


    【解决方案1】:

    我一直在努力解决这个错误消息以及我的开发环境,该环境使用通过docker-compose 执行的十多个容器。

    WARNING: Connection pool is full, discarding connection: localhost
    

    我想我已经找到了这个问题的根本原因。 python 库requests 维护一个 HTTP 连接池,docker 库使用该池与 docker API 以及容器本身进行通信。我的假设是,只有我们这些使用 docker-compose 和 10 多个容器的人才能看到这一点。问题是双重的。

    • requests 默认其连接池大小为 10,并且
    • 似乎没有任何方法可以从 docker-composedocker 库中注入更大的池

    我想出了一个解决方案。我的requests 库位于~/.local/lib/python2.7/site-packages。我找到了 requests/adapters.py 并将 DEFAULT_POOLSIZE 从 10 更改为 1000。

    这不是一个生产解决方案,非常晦涩难懂,并且无法在软件包升级后继续存在。

    【讨论】:

    【解决方案2】:

    您可以在部署前尝试重置网络池

    $ docker network prune
    

    停靠在这里:https://docs.docker.com/engine/reference/commandline/network_prune/

    【讨论】:

    • 感谢您的回复,不幸的是,这确实解决了问题。它也永远不是同一个容器,它运行相同的代码但不同的特定实例。
    【解决方案3】:

    我的 Django 应用程序遇到了同样的问题。在 docker-compose 中运行大约 70 个容器。这篇文章对我有帮助,因为在设置 COMPOSE_PARALLEL_LIMIT 后似乎需要修剪

    我做到了:

    docker-compose down
    export COMPOSE_PARALLEL_LIMIT=1000
    docker network prune
    docker-compose up -d
    

    【讨论】:

      【解决方案4】:

      为未来的读者。 @andriy-baran 对答案的一个小补充 您需要停止所有容器,删除它们,然后它们运行 network prune(因为 prune 命令仅删除未使用的网络)

      所以是这样的:

      docker kill $(docker ps -q)
      docker rm $(docker ps -a -q)
      docker network prune
      

      【讨论】:

        猜你喜欢
        • 2017-07-15
        • 2017-10-16
        • 1970-01-01
        • 2012-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-02
        相关资源
        最近更新 更多