1. running Docker containers -> running the Docker daemon (source)
  2. more daemons/services/processes -> larger attack surface (source)
  3. larger attack surface -> lower security (source)

This means by logical transitivity: running Docker containers -> lower security.

But before jumping to conclusions, we should ask at least five whys:

  • Why do you need Docker?
  • Why do you need containers?
  • Why do you need isolation?
  • Why do you need multiple containers on the same host?
  • Why do you need security?

Docker simplifies many tasks and has many features, but as everything it comes with a cost. So, is it possible to remove this Docker daemon from the equation to increase security? There are many alternatives, but each of them has different trade-offs. Some of the tools just shift the security risk, so choose carefully. Here is a very limited subset of possibilities in no particular order:

For the sake of security, just keep in mind:

“Security engineers working on Virtualization Security should push for as much attack surface reduction as possible” (source)

Additional links: