juniorDocker
What is the purpose of the 'EXPOSE' instruction?
Updated Apr 28, 2026
Short answer
It informs Docker that the container listens on the specified network ports at runtime, though it doesn't actually publish the port.
Deep explanation
Docker leverages Linux namespaces and cgroups to provide isolation. Unlike VMs, there is no hypervisor layer overhead, allowing for near-native performance and rapid startup times.
Real-world example
A developer wants to ensure their app runs exactly the same on their laptop as it does on a colleague's machine.
Common mistakes
- Confusing 'EXPOSE' with port publishing ('-p').
Follow-up questions
- What is a 'layer' in Docker?