A decade of Docker containers

Overall role and impact of Docker

  • Seen as a major cultural and operational shift: “ship your machine” made deployment faster and bypassed traditional ops bottlenecks.
  • Some argue Docker simply encoded pre-existing tribal deployment steps in a repeatable form (Dockerfile) rather than making deployment intrinsically “harder” or “easier.”
  • Others view it as a hacky but effective workaround for a broken Linux userspace and dependency model.

Containers vs traditional packaging / OS design

  • Debate over whether containers improve efficiency: they share the host kernel and can be lighter than VMs, but per-app userspaces duplicate libraries and tools.
  • Critics say this is bloat and that static linking or bundling deps beside binaries (as on Windows) is conceptually cleaner.
  • Defenders argue isolation and version pinning justify the duplication, especially in multi-tenant or fast-moving environments.
  • Some prefer traditional distro packaging + systemd units for single-tenant or small-scale setups.

Nix, Guix, and alternative paradigms

  • Nix/Guix praised for hermetic, reproducible builds, avoiding dependency conflicts and enabling fine-grained sharing.
  • Others note Nix has a learning curve, documentation gaps, and struggles with complex ecosystems like Python.
  • Discussion of more radical alternatives (Plan9/Inferno, unikernels) as ways to “fix the stack” instead of wrapping it.

Dockerfiles, build tooling, and reproducibility

  • Dockerfile’s flexibility and shell-based model seen as both its strength and its source of non-determinism and bad practices.
  • Some wish for declarative, language-neutral build tools; others point out those historically failed to gain adoption.
  • BuildKit, LLB, and third-party tools are used to improve caching, reproducibility, and layering; reproducible container builds remain nontrivial.

Performance, bloat, and ML workloads

  • Image sizes, especially for ML (e.g., multi-GB Torch/TensorFlow stacks), are a growing concern.
  • People experiment with distroless bases, hardened/minimal images, deduplicating registries, and Nix-based layering to tame size and startup time.

Networking, platforms, and tooling quirks

  • Historical use of SLIRP/VPN-like tricks to bypass corporate firewalls is widely discussed and admired as a clever hack.
  • Mac container networking and separate IPs remain awkward, often solved with WireGuard, third-party tools, or Tailscale.
  • Docker’s manipulation of iptables and ignoring host firewalls (e.g., ufw) is criticized as dangerous.