PID mapping between docker and host PID mapping between docker and host docker docker

PID mapping between docker and host


You can find the mapping in /proc/PID/status file. It contains a line like:

NSpid:  16950   24

Which means that 16950 on the host is 24 inside the container.


As I mentioned in "Running docker securely":

Currently, Docker uses five namespaces to alter processes view of the system: Process, Network, Mount, Hostname, Shared Memory.

The fact that, by default, as I mentioned in your previous question "Docker Namespace in kernel level" the container pid are isolated from the host (unless you run them with --pid host) is by design.

If you are using --pid=host, then those container pids are visible from the host, but not easily matched to a particular container, not until issue 10163 and --pid=container:id is resolved.

Update May 2016: issue 10163 and --pid=container:id is actually resolved by PR 22481 for docker 1.12, allowing to join another container's PID namespace.