Running Containers
Let’s understand the basics of running containers.
Windows containers vs. Linux containers
It’s vital to understand that containers share the kernel of the host they’re running on. This means containerized Windows apps need a host with a Windows kernel, whereas containerized Linux apps need a host with a Linux kernel. However, as mentioned, you can run Linux containers on Windows systems that have the WSL 2 backend installed.
What about Mac containers?
There is no such thing as “Mac containers”. However, Macs are great platforms for working with containers.
The most popular way of working with containers on a Mac is Docker Desktop. It works by running Docker inside a lightweight Linux VM on your Mac. Other tools, such as Podman and Rancher Desktop, are also great for working with containers on a Mac.
What about WebAssembly
WebAssembly (Wasm) is a modern binary instruction set that builds applications that are smaller, faster, more secure, and more portable than containers. You write your app in your favorite language and compile it as a Wasm binary, and it’ll run anywhere you have a Wasm runtime.
However, Wasm apps have many limitations, and we're still developing many of the standards. As a result, containers remain the dominant model for cloud-native applications. The container ecosystem is also much richer and more mature than the Wasm ecosystem.
Docker and the container ecosystem are adapting to work with Wasm apps, and you should expect a future where VMs, containers, and Wasm apps run side-by-side in most clouds and applications.
What about Kubernetes?
Kubernetes is the industry standard platform for deploying and managing containerized apps.
A containerized app is an application running as a container.
Older versions of Kubernetes used Docker to start and stop containers. However, newer versions use containerd, which is a stripped-down version of Docker optimized for use by Kubernetes and other platforms.
The important thing to know is that all Docker containers work on Kubernetes.