Linux namespaces, including PID namespaces, are one of the key technologies that enable containers to run in isolated environments. I published a video that covers an Overview of How Containers Use PID Namespaces to Provide Process Isolation. This video digs in deep to cover this complex topic with lots of demonstrations.
This video describes how containers work under the hood, and it supplements the pid_namespaces manual page (man pid_namespaces) with demonstrations and step-by-step explanations of the behavior of PID namespaces.
These topics are covered:
- Using the lsns command to view PID namespaces
- Displaying which PID namespace processes are running with the ps -e -o pidns,pid,args command
- Using the unshare command to create a PID namespace
- The process isolation that PID namespaces provide
- Processes from a parent namespace, and why processes have different PID numbers in the parent namespace
- Duplicate PIDs in different namespaces
- PID mapping between different PID namespaces with the /proc/<pid>/status file and use at the NSpid attribute
- Run a container with podman and view the PID namespace created
After watching this video, you should better understand how PID namespaces work and the benefits they provide.
[ Getting started with containers? Check out this free course. Deploying containerized applications: A technical overview. ]