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()

 

posted @ 2023-03-29 16:18  qingjiawen  阅读(429)  评论(0编辑  收藏  举报