0

I am trying to wrap my head around the uses of Docker (compared to VMs). I understand that it can greatly improve software development, but I am not a developer. Im more on the sysadmin side of things.

I can grasp the concept of VMs as I can separate a web server from a file server hosted on one box with HyperV or VMware. But I am scratching my head as to the potential uses of using Docker since VMs provide isolation from each other.

Can any other sysadmins point out any uses for Docker or when you would pick Docker over VMs? Or is Docker strictly geared for software development and has no uses on the sysadmin side of IT?

Thanks

3
  • 2
    VMs abstract the hardware layer. It requires you install an entire operating system and consume all the resources that go with it. Docker containers abstract the operating system. It doesn’t require that you install an OS. Rather it uses the underlying OS. The containers still run in an isolated and protected environment but consume far less resources because an entire operating system does not need to be installed for each container. In addition containers are often deployed from a template and automatically configured in a cluster which aids in scaling, and reliability as well as CI/CD. Jul 4, 2019 at 19:44
  • 1
    However, containers are not a universal replacement for VMs. Not all things can be containerized. Did you know that google spins up and tears down millions of containers a day? Every single time you click to watch a YouTube video, a new container is spun up in milliseconds to service the request and then tore down when you are done. You should look this up as there are far better explanations and information to answer your question already out there. Jul 4, 2019 at 19:45
  • @Appleoddity, why not make that good description an answer? Jul 4, 2019 at 19:52

1 Answer 1

0
  • You can run recent software, without having to upgrade the whole system.
  • Application can coexist in the same VM even if they have incompatible software requirements
  • You can easily rollback to a previous version if needed.
  • With container orchestration (Kubernetes or else) you can easily spread the load over several machines (and even data centers) for better response and reliability. In such schemes you can runs tens of different applications in the same group of VMs, and adjust their relative CPU usage.

However:

  • To some extent applications have to be container-aware, putting your traditional monolithic app in a container is not a good idea.
  • Closely look at the licensing terms of your software. Proprietary software and containers don't mix too well.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.