In an earlier example, I demonstrated the use of my duluca/minimal-node-web-server Docker image to host our Angular apps. Even though Node.js is a very lightweight server, it is simply not optimized to just be a web server. In addition, Node.js has single-threaded execution environment, making it a poor choice for serving static content to many concurrent users at once.
You can observe the resource that a Docker image is utilizing by executing docker stats:
$ docker statsCONTAINER ID CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS27d431e289c9 0.00% 1.797MiB / 1.952GiB 0.09% 13.7kB / 285kB 0B / 0B 2
Here are comparative results of the system resources that a Node and NGINX-based servers utilize at rest:
Server |