我在生产服务器中使用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'))
如果我多次手动运行此命令,最终会成功,但我需要修复它,因为此错误会导致部署过程失败。
答案 0 :(得分:0)
它似乎超过open file descriptor
的最大container
,尝试使用ulimits的nofile
来增加打开文件的最大数量。
例如,
ulimits:
nofile:
soft: 98304
hard: 98304
对于命令行
--ulimit nofile=98304:98304
答案 1 :(得分:0)
我想通了......我在后台运行一些工作我使用docker-compose run [service] [command]
,每次运行时都会创建一个新的docker容器而不会被杀死。当我尝试docker-compose down
时,有很多容器和停靠者停止了。
要解决我在--rm
中添加了docker-compose
标志,这样当命令完成后,删除了变容器:
docker-compose run --rm [service] [command]