Hello, developers at the forefront of IT technology! ๐๏ธ
If I had to pick one word that has dominated our infrastructure environment for the past 10 years, I would undoubtedly shout ‘Docker’ and ‘Containers’. It was the savior that put an end to the tiresome excuse, “But it works on my machine?”
However, recently, a new challenger has emerged to threaten this robust Docker kingdom: WebAssembly (hereinafter Wasm). Even Docker’s founder reportedly lamented upon seeing this technology.
“If Wasm and WASI had existed in 2008, we wouldn’t have needed to create Docker.”
– Solomon Hykes (Docker Co-founder)
What exactly is Wasm that the king of containers would say such a thing? Today, we will thoroughly explore the potential of Wasm, which is infiltrating beyond browsers to the server-side, and whether it can truly replace Docker. ๐

1. WebAssembly (Wasm): Browser Escape Number One ๐โโ๏ธ
Originally, Wasm was created ‘to run high-performance programs in web browsers.’ JavaScript (JS) was too slow. So, Wasm is a ‘Binary Instruction Format’ that allows code written in languages like C++ and Rust to run at near-native speed on the web.
But smart developers thought:
“Hmm? This would be incredibly fast and safe even if run outside the browser (on a server)?”
This is where the concept of WASI (WebAssembly System Interface) emerged. It’s a standard interface that allows Wasm to access OS features like file systems and networks. At this moment, Wasm evolved beyond a simple web technology into a ‘next-generation computing unit.’
2. Docker vs Wasm: A Huge Difference in Weight Class ๐ฅ
Both Docker and Wasm share the goal of ‘executing code in an isolated environment,’ but their methods are vastly different. Why is Wasm considered superior to Docker?
โ The Dimension of Speed: Milliseconds (ms) vs Seconds (s) โฑ๏ธ
- Docker: To spin up a container, you need to configure Linux container isolation technologies (cgroups, namespaces) and load a mini OS file system within it. No matter how fast, it takes ‘seconds’ (Cold Start).
- Wasm: It doesn’t spin up an OS. It’s like executing a single function on a virtual machine (VM). It starts up in ‘milliseconds.’ In a serverless environment, this difference is enormous.
โก The Aesthetics of Lightness: Kilobytes (KB) vs Megabytes (MB) ๐ชถ
- Docker: Even for a simple “Hello World,” a base image (like Alpine Linux) is required, needing at least tens of MBs.
- Wasm: Only the necessary business logic (code) is compiled. Tens to hundreds of KBs are sufficient. Network transfer speed and storage efficiency are incomparable.
โข True “Write Once, Run Anywhere” ๐
- Docker: It claims “runs anywhere,” but there’s a lie (?) mixed in. A Docker image built on a MacBook (M1/ARM) won’t run on an Intel (x86) server. You need to build separately for each architecture.
- Wasm: This is true. A compiled .wasm file runs identically on Windows, Linux, Mac, Raspberry Pi, anywhere. This is because it’s CPU architecture-independent bytecode.
3. Security: “Trust Nothing from the Start” ๐ก๏ธ
Docker’s security model relies on ‘Linux kernel features (Namespaces).’ If a container is breached, there’s a structural risk that a hacker could threaten the host OS kernel (Root privilege issue).
On the other hand, Wasm is inherently a ‘Sandbox.’
- Basically a ‘prison’: A Wasm module cannot touch anything outside its specific memory area.
- Explicit Permission (Capability-based Security): Even to read a single file, access is impossible unless explicitly granted, e.g., “I’ll give you read permission for this folder.” The security level is much higher.
4. Docker Founder’s Confession, What’s the Real Meaning? ๐ฃ๏ธ
Solomon Hykes’ tweet is not a declaration of Docker’s defeat. It’s an acknowledgment of “the direction of technological evolution.”
*”Docker is heavy. We started with the huge burden of Linux containers. But Wasm shed all unnecessary OS-level burdens and focused solely on ‘code execution’.”*
In other words, he acknowledged that Wasm is much more suitable than Docker for future environments where lightweight and fast execution are crucial, such as Serverless and Edge Computing.
5. So, Is Docker Dying? (Future Outlook) ๐ฎ
To conclude, “No, but its role will change.”
Wasm is not yet perfect. Multithreading, network socket support, debugging tools, etc., are not as mature as Docker. It’s difficult to immediately switch complex enterprise applications entirely to Wasm.
The most likely future is ‘coexistence.’
- Docker’s Embrace: Docker Desktop has already started supporting Wasm. (You can run .wasm files with docker run!)
- Hybrid Architecture: Heavy infrastructure like databases or message queues will run in containers, while business logic or lightweight microservices will run in Wasm.
๐ Conclusion: The Core of Next-Generation ‘Cloud Native’
Wasm is not just a trend. The Kubernetes ecosystem is already embracing Wasm as a first-class citizen.
There’s no need to abandon Docker right now, but it’s crucial to remember that Wasm, “a container smaller than a container,” is coming. Especially if you’re interested in serverless or edge computing, start practicing Wasm with Rust or Go right now!
This small technology might reduce your server costs by 90%. ๐ธ๐
Leave a Reply