What are the advantages of docker containers over statically linked EXEs?

I am struggling to understand exactly what practical problem docker solves. Docker prescribes “one process per container”. If your container only encapsulates one program/process, then what advantage is there over a statically linked executable? Doesn’t this do basically the same thing (encapsulate a program) in a much more simple and efficient way?

  • using docker for win10 to build image, and found the COPY command changed the new line
  • `foxx-manager update` fails inside corporate proxy environment
  • Filesystems content of docker container on host
  • Tensorflow for Poets | Relaunching Docker | invalid reference format
  • Docker container running but browser refuse to connect
  • SSH to backend app
  • Docker Windows 8 issue - containers not loading after restart
  • how can I open a flask app on my browser that's running remotely on docker?
  • Docker pull fails to lookup index.docker.io on (cannot unmarshal DNS message)
  • How to mount the current working directory onto Docker container?
  • remove dlite from Mac
  • Setting up Ruby along with android in docker
  • 2 Solutions collect form web for “What are the advantages of docker containers over statically linked EXEs?”

    Docker resolve a list of common problems that a statically linked exe does not:

    • You distribute your app with folders in a known file system, environment variables initialized, and network settings previously created and established to work. Not in risky setup time with your app running for first time trying to create folders, paths, environment vars, etc. and getting crashed for permissions errors, network unidentified, ABI incompatibilities, etc.
    • It is more convenient to setup microservices architectures. Many instances running each one in its own environment without conflicting races and offering tools for distribute, load and running your backend services.

    Well no.

    It’s more like chroot() or jail() or pledge() the benefit of docker is that you can easily change user context in which the program is running.

    Another benefit is that you can use a complete different OS then the host is. e. g.: MS Dotnet core 1 on Linux.

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