centos docker服务问题
概述
docker的应用版本正式上线,结果一上线就出各种幺蛾子。
本文档主要介绍centos系统安装docker和启动的问题解决方法。
环境
docker registry:2
centos 6 && docker 1.7.1
centos 7 && docker 24.0.6
docker服务启动失败
docker安装,命令会自动安装依赖libcgroup。
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
docker-engine x86_64 1.7.1-1.el6
libcgroup x86_64 0.40.rc1-27.el6_10
启动。
sudo service docker start
查看docker状态报错,发现docker服务启动失败。
通过查看docker日志显示如下。
cat /var/log/docker
level=warning msg="You are running linux kernel version 2.6.32-431.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.10.0."
/usr/bin/docker: relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference
这个错误和依赖库有关。
报错解决方案,增加安装依赖库。
sudo yum install device-mapper-libs
重启。
sudo service docker restart
查看docker版本,服务启动成功。
sudo docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64
最大文件数
fs容器正常启动后,运行稳定,测试正常。
但是呼叫起量之后开始报错。
[ERR] switch_rtp.c:4121 Error Starting timer [soft] 160 bytes per 20ms, async RTP disabled
[ERR] switch_core_media.c:7566 AUDIO RTP REPORTS ERROR: [Socket Error!]
[ERR] mod_sofia.c:2354 CODEC NEGOTIATION ERROR. SDP:
[ERR] mod_sndfile.c:204 Error Opening File [/usr/local/freeswitch/sounds/music/8000/suite-espanola-op-47-leyenda.wav] [System error : Too many open files.]
从日志中可以看到很明显的系统错误,打开过多文件。
检查系统参数。
ulimit -a
open files (-n) 1024
查看fs进程ID为19633,检查对应的进程限制。
sudo cat /proc/19633/limits
Max open files 1024 1024 files
查看fs进程当前打开文件数,下面是正常之后的数据。
sudo ls -l /proc/19633/fd/ | wc -l
2352
很明显,docker服务启动时的系统限制单个进程最大打开文件数为1024,而fs在运行过程中打开音频文件和媒体端口都会失败。
报错解决方案,修改系统限制,重启docker服务。
sudo vi /etc/security/limits.conf
* soft core unlimited
* hard core unlimited
* soft data unlimited
* hard data unlimited
* soft fsize unlimited
* hard fsize unlimited
* soft sigpending unlimited
* hard sigpending unlimited
* soft nofile 65536
* hard nofile 65536
* soft stack 8192
* hard stack 8192
* soft msgqueue unlimited
* hard msgqueue unlimited
* soft nproc 65536
* hard nproc 65536
* soft locks unlimited
* hard locks unlimited
* soft memlock unlimited
* hard memlock unlimited
sudo service docker restart
重新检查fs进程限制,最大打开文件数为65536,问题解决。
总结
docker registry的私服镜像使用方便。
docker-compose管理镜像启动配置。
空空如常
求真得真