microsoft / mssql-docker

Official Microsoft repository for SQL Server in Docker resources
MIT License
1.72k stars 759 forks source link

Running Linux and Windows Containers side-by-side: Can't launch microsoft/mssql-server-linux:latest #250

Open gischethans opened 6 years ago

gischethans commented 6 years ago

I am running Docker CE (key details of docker info below) and was all excited to see the new ability to run Linux and Windows Containers side-by-side.

However, when I try to run mssql-server-linux container, it exits almost instantaneously with exit code 1. Docker logs command indicates this -

sqlservr: This program requires a machine with at least 2000 megabytes of memory.

By default, my Docker is in Windows mode and I have tried switching to Linux containers mode and increasing the memory to 8 GB and the number of cores to four but that isn't helping. How to resolve this?

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 18.02.0-ce-rc1
Storage Driver: windowsfilter (windows) lcow (linux)
 Windows:
 LCOW:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslog
Swarm: inactive
Default Isolation: hyperv
Kernel Version: 10.0 16299 (16299.15.amd64fre.rs3_release.170928-1534)
Operating System: Windows 10 Enterprise
OSType: windows
Architecture: x86_64
CPUs: 8
Total Memory: 31.89GiB
twright-msft commented 6 years ago

This is a known issue. See the comments at the end of this issue: #114

jeromechrist commented 6 years ago

+1 same issue

justin2004 commented 5 years ago

@gischethans @jeromechrist

I made a docker image that works around this memory (limitation) policy: https://github.com/justin2004/mssql_server_tiny

dnzhnshn commented 5 years ago

This is a known issue. See the comments at the end of this issue: #114

please someone helps me I Have to use ASPNET and microsoft IIS between mssql server. I do not have much more time .. Looked around for this issue about 3 days and could not find resolve than ı tried to use msqlserver developer for microsoft but ı understand that ı should turn back to linux version cause of microsoft versions volume problem. How ı can solve the least 2000 mb reqiuers error ..

justin2004 commented 5 years ago

@dnzhnshn this will allow you to run mssql-docker on a host with less than 2000 MB of RAM:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d justin2004/mssql_server_tiny

for more information: https://github.com/justin2004/mssql_server_tiny

dnzhnshn commented 5 years ago

@dnzhnshn this will allow you to run mssql-docker on a host with less than 2000 MB of RAM:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d justin2004/mssql_server_tiny

for more information: https://github.com/justin2004/mssql_server_tiny

I tried but get this error Reason: 0x00000006 Status: 0x40000015 Message: Kernel bug check Address: 0x6a42b430 Parameters: 0x6a629610 Stacktrace: 000000006a4e83a6 000000006a42b48b 000000006a41ecfd 000000006a42ae2b 000000006a4e6929 000000006a4e59c4 000000006a4e5836 000000006a4e571e Process: 15 - sqlservr Thread: 19 (application thread 0x1000) Instance Id: 9442f2f7-951e-4243-9590-bccd9873958b Crash Id: 4076a68d-8c61-4037-b1eb-79702c6a1d29 Build stamp: 1dc223c2c297541dfebf5ce3265c3e74bbe289d287259e15dd32bd77f11bc1bd

Capturing core dump and information... dmesg: read kernel buffer failed: Operation not permitted No journal files were found. No journal files were found. Attempting to capture a dump with paldumper Core dump and information are being compressed in the background. When complete, they can be found in the following location: /var/opt/mssql/log/core.sqlservr.05_25_2019_18_48_27.15.tbz2

justin2004 commented 5 years ago

what happens if you run this:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d mcr.microsoft.com/mssql/server

dnzhnshn commented 5 years ago

what happens if you run this:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d mcr.microsoft.com/mssql/server

you're the man !! it was only about my volume mounthing issue is gone. So I have to 2 mssqlserver on my windows . Thank you for effort

leonicolas commented 5 years ago

Is there any fixes for this issue?

justin2004 commented 5 years ago

@leonicolas a workaround is here: https://github.com/justin2004/mssql_server_tiny

davherrmann commented 4 years ago

Have you tried setting the memory limit to something higher than 2000MB with the option -m 4g or --memory 4g?

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 --platform linux -m 4g -d mcr.microsoft.com/mssql/server

In a docker-compose file the same can be achieved by setting a resource constraint.