Ok, the container can only see the one processor (same as my host), so let’s exec into the container and check the number of cores. Microsoft/mssql-server-windows-developer:latestĪnd then running: – docker exec testcontainer systeminfo | select-string 'Total Physical Memory'ĭocker exec testcontainer systeminfo | select-string 'Processor' This can be checked by spinning up a Windows container:- docker run -d -p 15789:1433 ` The host I’m running on has 4 cores and 32GB of RAM, so the containers should have all the host resources available to it, right? This is because Windows containers run on the host, not in the MobyLinuxVM. The container has the memory and CPUs that were set in the Docker settings.īut what about Windows containers? When you switch to Windows containers in Docker, there’s no option to set CPU and memory limits. mssql/server:2019-CTP3.0-ubuntuĪnd then running the following to confirm resources available to the container: – docker exec testcontainer /bin/bash -c 'cat /proc/meminfo | grep MemTotal' env ACCEPT_EULA=Y -env SA_PASSWORD=Testing1122 ` This can be confirmed by spinning up a Linux container (I’m running SQL but you can use any image): – docker run -d -p 15789:1433 ` These setting control the resources available to the MobyLinuxVM, where the Linux containers run (and that’s how you get Linux containers running on Windows 10): – Linux containers’ resource limits are set in the Advanced section of the Docker Desktop settings: – One of those differences being the default resource limits that are set.
However there are some differences between how Windows and Linux containers run in Docker Desktop.
DOCKER FOR WINDOWS VS DOCKER ON WINDOWS INSTALL
I also love the fact that I no longer need to install SQL 2016/2017, I can run it in Windows containers. The ability to run Windows and Linux containers locally is great for development and has allowed me to really dig into SQL Server on Linux.