Is using a Docker to isolate production environment is the correct approach?

I’m new to containers.

We have a Win10 Pro server. There are bunch of applications installed on it and a lot of garbage. In addition, the server has our production application (windows based) that requires certain other GUI windows-based applications (app1, app2) to be installed. Once in a while some developer upgrades either our production application and/or those app1/app2. This breaks stuff and makes tests to be unreliable.

I don’t want to reinstall the OS or spend time going over all the applications and delete the unsued ones since someone will install them again at some point (please accept this as a fact).

After reading about containers it seems that a container, such as Docker is the right way to go.

  1. Is a container the right solution or is it an overkill?
  2. Will I be able to use the container without deleting all the unused applications on that server?
  3. I still need to be able to access and manually start GUI app1 and app2 (e.g. VLC). Will the container allow me to do this like with regular VM or the app1 and app2 will be started inside the Docker and I won’t be able to interact with them (e.g. with a mouse)?

If you need GUI, I would still use virtual machine with snapshots. Then you can restore the state of the machine from the snapshot. It would be similar to what containers do when you remove it and create it again. In case of VMs it would not be recreating but restoring.

Containers usually don’t have GUI. There are solutions, but you would still need remote desktop or other tricks, so I don’t think it is worth it and I actually don’t know if it is possible on Windows and if it is, how.

I don’t understand this question. Can you explain it? Why would you delete anything?

By the way, Windows 10 Pro is not a server :slight_smile: I note this because Windows Server works differently and Docker runs on Windows server differently.

  1. Can a Docker run on Windows 10 Pro though? Why I need Windows Server though?
  2. I actually don’t remember what I meant by that second question :slight_smile:
  3. Regarding the snapshots, since a VM snapshot takes much more space than a docker image, it will blow my space really really quickly. Did you mean to take a snaphost, make changes test the new VM and then delete the snaphost so that they won’t take all my space?

@vrapolinario can you shed some light on Microsoft’s recommendations about running productive windows container workloads on Windows 10 Pro?

I didn’t say it can’t. You don’t “need to use” Windows Server, I just wanted to note that when you write “Windows 10 Pro server” that is not correct, because “Windows 10 Pro” is not a server operating system. Although some people tries to use Docker Desktop on Windows Server, it is not officially supported so you would install Docker on Windows server differently. That’s all I meant :slight_smile:

I meant you could have one snapshot so you can restore it when you need.

Getting late to the party. So, in parts:

  • first, it seems containers is not an alternative here, simply because the app require a graphical user interface (GUI). Windows containers don’t support apps that need GUI. Full stop.
  • Windows 10 is not server (as mentioned before). Windows 10 and 11 are for all purposes client OS, and no production server environment is supported on Windows 10 or 11. If you want to run a server environment, regardless if it’s containers or anything else, it needs to run on Windows Server.
  • Docker Desktop is not available on Windows Server. Since the split between Docker and Mirantis, Mirantis took over the container runtime that works on Windows Server, so you’d need to look for that to support a container environment on server - that would be different for K8s on Server, but this doesn’t seem to be the case.

Does that helps?

1 Like