docker撰写失败:打开的文件太多

docker撰写失败:打开的文件太多,docker,docker-compose,Docker,Docker Compose,我正在生产服务器中使用docker compose。在部署过程中,我运行docker compose down,部署应用程序并运行docker compose up。但是,当我执行docker compose down时,它会返回如下内容: ERROR: for ubuntu_php_run_1105 ('Connection aborted.', error(24, 'Too many open files')) ERROR: for ubuntu_php_run_821 ('Conne

我正在生产服务器中使用docker compose。在部署过程中,我运行
docker compose down
,部署应用程序并运行
docker compose up
。但是,当我执行
docker compose down
时,它会返回如下内容:

ERROR: for ubuntu_php_run_1105  ('Connection aborted.', error(24, 'Too many open files'))

ERROR: for ubuntu_php_run_821  ('Connection aborted.', error(24, 'Too many open files'))

ERROR: for ubuntu_php_run_820  ('Connection aborted.', error(24, 'Too many open files'))

如果我手动运行此命令更多次,最终会成功,但我需要修复它,因为此错误会使部署过程失败。

它似乎超过了容器的最大打开文件描述符
,尝试使用的
nofile
增加打开文件的最大数量

比如说,

ulimits:
  nofile:
    soft: 98304
    hard: 98304
用于命令行

--ulimit nofile=98304:98304

我想出来了。。。我正在后台运行一些作业来完成它。我使用了
docker compose run[service][command]
,每次它运行一个新的docker容器时,它都会被创建,而不会被终止。当我试图写下docker时,有很多容器,docker停了下来

为了解决这个问题,我在
docker compose
中添加了
--rm
标志,这样当命令完成时,conainer将被删除:

docker-compose run --rm [service] [command]

有没有办法“关闭”这些文件?即使我最终增加这个数字,我也会有同样的问题。你为什么这么认为?。你的应用程序无限期地打开文件吗?我以为这个错误是docker compose打开的一些文件。我不知道我的应用程序中有任何“打开文件循环”,但我会检查它。关于答案,我正在运行一些测试,以检查它是否已解决。