docker 修改sqlserver内存限制
破解docker安装sqlserver内存2g限制
使用docker run之后会发现容器根本跑不起来,使用docker logs <containerid> 查看日志会看到:
sqlservr: This program requires a machine with at least 2000 megabytes of memory.
也就是可用内存没有2g所以报错,启动不了。
破解思路:把内存限制被修改为 512m在启动即可
正常情况下我们可以进入docker内部去修改文件,但是这里由于启动不了docker容器,所以也就进不去,我们可以把docker内部的文件复制到宿主机,修改后在复制回去宿主机即可。当然也可以挂载docker内部的文件在宿主机这样也很方便修改,我们这里说一下第一种方法
把docker内部的文件拷贝到宿主机:
语法:docker cp [容器id]:docker容器中配置文件路径 主机路径
实例:docker cp [容器id]:/opt/mssql/bin/sqlservr "/home/sqlservr" 这样就可以把docker内部的sqlservr文件拷贝出来到home文件夹下了
然后修改从docker内部复制出来的文件
先使用mv命令改一下文件名,后面修改后原始文件就还在相当于备份一下文件:mv sqlservr sqlservr.old
使用python修改内存限制代码(注意使用python2,使用python3好像有点问题,centos7.6自带python2.7)
oldfile = open("sqlservr.old", "rb").read() newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e") open("sqlservr", "wb").write(newfile) exit()