我在ubuntu 14.04中运行了一些mysql docker一段时间。有时,码头工人突然无缘无故地退出。通过运行检查日志
docker log containerID
,它总是给出错误,如,
/bin/bash: error while loading shared libraries: libncurses.so.5: cannot stat shared object: Error 11
要么,
/bin/bash: error while loading shared libraries: libdl.so.2: cannot stat shared object: Error 11
重新启动多次后,docker可以重新启动而不会出现任何错误。大多数相关的已解决的问题是关于错误“无法统计共享对象:没有这样的文件或目录”。你能帮忙找一些根本原因的建议吗?
Docker版本:
Version: 17.03.2-ce
API version: 1.27
Go version: go1.7.5
Git commit: f5ec1e2
Built: Tue Jun 27 03:11:13 2017
OS/Arch: linux/amd64
货柜信息:
"Config": {
"Hostname": "9cb17ec714cb",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"3306/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"MYSQL_ROOT_PASSWORD=XXXXXXXX",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GOSU_VERSION=1.7",
"MYSQL_MAJOR=5.7",
"MYSQL_VERSION=5.7.21-1debian8"
],
"Cmd": [
"mysqld"
],
"ArgsEscaped": true,
"Image": "mysql:5.7",
"Volumes": {
"/var/lib/mysql": {}
},
"WorkingDir": "",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {}
},
@RomeoNinov感谢您的评论。你的意思是在主机linux或docker容器内安装libncurses吗?奇怪的是,当我多次重启容器时,容器可以成功启动,这似乎可以在没有任何安装的情况下使用这个共享库。今天,我又遇到了另一个与MySQL inmage无关的docker容器的问题。
—
RayTM
如果这是主机软件的错误,请将其安装在主机上。如果你在运行其他容器时遇到错误对我来说意味着问题出现在主机上
—
Romeo Ninov
@RomeoNinov明白了。同意你我不应该触摸官方docker镜像并检查主机中的libncurses。我会在前几天尝试并更新结果。先感谢您。
—
RayTM
@RomeoNinov在尝试运行'apt-get install libncurses'时,返回错误'无法找到包libncurses'。命令'sudo apt-get install libncurses5'表示它已经是最新版本。最后,运行'sudo apt-get install libncurses5-dev libncursesw5-dev',通过引用google结果来安装lib ncurses。
—
RayTM
apt-get install libncurses