项目场景:本机docker镜像 euler欧拉服务器安装mysql记录
由于之前没有开放3306端口 ,现在
docker commit 容器ID 新镜像名称:tag
然后启动镜像后
exec进入镜像,无法进入mysql客户端的两个问题
1
commit镜像后 之前的这个软连接失效了,不是1:1复制的,需要自己重新创建:
cd /usr/lib64
ln -s libtinfo.so.6 libtinfo.so.5
2
commit的服务是启动的,但是启动新的镜像后,服务没有了 ,应该没有设置开机启动,需要重新启动
手动启动命令:
/opt/mysql-8.0.32/bin/mysqld --user=root --basedir=/opt/mysql-8.0.32/ --datadir=/opt/mysql-8.0.32/data/ &
3
之前启动好好的镜像 手动启动报
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方案:
复制:
报错:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
执行这行命令报错了,原因是:新的服务器环境,上面很多依赖都没有,所以安装软件的时候遇到一大堆小问题,解决它很简单,它缺少啥就安装啥。
解决方案
yum install -y libaio.so.1
为啥不能全量commit依赖,自我感觉不是很合理,那样的话就可以run anywhere 了,不需要重新安装
可能是自己安装的软件都在宿主机路径,经过测试,commit以后 之前映射的opt路径下 在重启镜像中都是空的了,这可能是导致的问题 ,所以安装的东西还在不要在和宿主机路径下,有时间再测试下,看看 是否还是缺少依赖