背景
很久没有写博客了,写一个困扰了我一个下午的问题,arm架构下docker安装mysql5.7无法启动的问题。
选择镜像
https://github.com/biarms/mysql,这个是官方镜像的一个分支
问题复现
当我启动mysql时报错如下:
ERROR: mysqld failed while attempting to check config
command was: “mysqld --verbose --help”
我前后想了很多种原因:
- 我的镜像有问题?
在我本地没有问题 - 我的docker有问题?
我对比了我本地和服务器的docker版本,发现也一样,但是我本地是mac,服务器是linux,本地是docker desk安装的,服务器是二进制安装的。 - 我的docker配置有问题?
我看了一下daemon.josn,发现也差不多 - docker.service有问题
最后我死马当活马医了,我去看了看docke.service,我就删除配置,重新启动docker,发现镜像竟然起来了,豁然开朗。此时就是找到哪个配置有影响了,最后定位到了
LimitNOFILE=infinity、LimitNPROC=infinity、LimitCORE=infinity三个配置,我发现把这三行删了就好使
解决方案
https://github.com/docker-library/mysql/issues/579
加上–ulimit nofile=262144:262144