The difference between containers (Docker) and IIS

I will learn about containers (mostly Docker) as it fits windows. And the benefits seem very similar to IIS.

I work for firewall applications for my company (Business Line). We have a bunch of virtual machines, each of which will have a family of web services. A single virtual machine can run more than 20 IIS.

In this scenario, what does deploying my services through Docker do, it seems to me that I am not using IIS yet?

NOTE. I am completely new to Docker and only have developer experience in IIS.

+7
windows docker iis
source share
2 answers

Docker does not replace IIS - it can run an application, such as IIS in a container (I assume - I do not know how this will work on Windows).

Docker is more like replacing a virtual machine - the biggest difference between a virtual machine and a Docker container is that a Docker container is MUCH lighter than a full virtual machine. The usual statement that you see is that you can run many more Docker containers on the host than virtual machines (but your mileage may vary - some of the complaints there are a bit ... overpriced).

Basically, the idea is this: a virtual machine is a complete virtual machine - a real OS running on top of virtual hardware (which looks real enough for the OS). This way you get all the bells and whistles of the OS, including things that you probably don't need if you are using IIS or another HTTP server.

Docker, on the other hand, simply uses the main OS, but uses some useful OS features to isolate the processes running in the container from the rest of the host. Thus, you get the allocation of a virtual machine (useful in case of failure or security) without the overhead of the entire OS.

Now you could run β€œ20+ services” in one Docker container, but this is usually not recommended. Because Docker containers are so lightweight, you can (and should!) Limit them to one service per container. It gives you benefits like

  • separation of concerns: your database container is just a database. Nothing more. In addition, it only processes data for the application using it.

  • improved security: if you want to configure it this way, your database container can only be accessed from an application that uses this database.

  • A limited set has been installed: only MySQL should work in your database container - there is no SSH daemon, no web server, no other material. Simple and clean, with each container doing one thing.

  • portability: I can configure my images, transfer them to the new host and start the container, and I will be guaranteed to have the same environment on the new host as the old one. This is extremely useful for development.

Not to say that you cannot install something like this using virtual machines - you certainly could - but imagine the overhead of a full virtual machine for each component in your application.

As an example, my main project these days is a web application running on Apache with a MySQL database, a redis server and three microservices (each of which is a simple independent web application running on Lighttpd). Imagine using six different servers for this application.

+6
source share

Docker containers support .NET, SQL Server, and other workloads that will be integrated with IIS. You can also take advantage of the portable portability of dockers, as you can take images from your container and run them on AWS or Azure, as well as privately. And you get access to the great ecosytem tools on docker., Bottomline, the industry is advancing to support the Docker API.

+2
source share

All Articles