Container는 격리된 Process이다.

Container에는 Layer들이 있다.
읽기/쓰기 전부 각각 하나의 Layer가 된다.
Layer들을 쌓아서 Commit 하면 하나의 Image가 되는데
Layer 하나가 Image가 될 수도 있고 여러 개가 될 수도 있다.
Docker = Namespace + Union FS
Namespace로 격리가 가능하고 Union FS로 여러 개의 layer들을 합쳐서 사용 가능하다.
Namespace로 격리하면 같은 포트를 Container가 다르면 같이 쓸 수 있고 Cgroup을 써서 성능 제한을 걸 수도 있다.
아래 기준으로 Container를 독립시킬 수 있다.

보통 OS가 각 프로세스에 대한 자원을 통제한다(작업관리자).
하지만 cgroup을 쓰면 각 ps에 얼마를 줄지 정할 수 있다.
이렇게 할당하면 격리된 효과를 줄 수 있다.