Containers – What are their benefits, if they can't run across platform

I read over internet “containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server“.

I also read that linux containers cannot run on windows.

  • Docker container can't resolve DNS to reach another AWS Ec2 Machine
  • Getting started with Laradock on Mac
  • Sharing a Docker container directory which serves as a mount point
  • How to get local docker daemon info
  • Nginx setup and v1/** endpoints access
  • How to programmatically monitor if a docker container exited?
  • The benifits of containers stated “Containers run as an isolated process in userspace on the host operating system.

    I don’t understand if the containers are not platform independent what we are actually achieving out it?

    1) Anyhow all the applications on a linux box should run as an isolated process in their userspace.

    2) If containers only contain app code + runtimes + tools + libraries. They can be shipped together. What conatiners are getting here?

  • Docker Check if DB is Running
  • Is it a normal practice to include more than one Dockerfile in a project?
  • How can I run a Python script in a remote Docker container?
  • Can't build openjdk:8-jdk image directly
  • boot2docker is autoupgrading
  • kube-proxy not redirect to correct node
  • 2 Solutions collect form web for “Containers – What are their benefits, if they can't run across platform”

    Posting the comment as answer::

    If containers only contain app code + runtimes + tools + libraries.
    They can be shipped together. What conatiners are getting here?

    Suppose there is an enterprise with thousands of employees and all of them work on Visual Studio C++. Now, the administrator can create a container with the installed (only C++ components) and configured VS, and deploy that container to all employees. The employees can instantly start working without bothering about installation and configuration of the application. Again, if the employee somehow corrupts the application, they only need to download the container again and they are good to go.

    • Sandboxing
    • Security
    • Maintenance
    • Mobility
    • Backup
    • Many more to go.

    Are container platform independent?

    IMHO, I don’t think so, as they rely on the system calls. Though, I am open to other concepts if anybody knows better on this topic.

    Even only considering one platform, containers have their advantages; just not perhaps the ones you need right now. 🙂 Containers help in administration/maintenance of complex IT systems. With containers you can easily isolate applications, their configuration, and their users, to achieve:

    1. Better security (if someone breaks in, damage is usually limited to one container)
    2. Better safety (if something breaks, or e.g. you make an error, only applications in a given container will be victim to this)
    3. Easier management (containers can be started/stopped separately, can be transferred to another hosts (granted: host with the same OS; in case of Linux containers the host must also be Linux))
    4. Easier testing (you can create and dispose-off containers at will, anytime)
    5. Lighter backup (you can backup just the container; not the whole host)
    6. Some form of increasing availaibility (by proper pre-configuration and automatic switching a container over to another host you can be up and running quicker in case of the primary host failure)

    …just to name the first advantages coming to mind.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.