1. 호스트 os 위에서 논리적으로 격리된 환경(파일시스템, ip, port, ...)을 가지는 프로세스를 만드는 기술.

2. 환경을 가지는 프로세스를 컨테이너 라고 함.

3. 환경에 대한 정보는 호스트 os에 파일로 관리되고 그 파일을 이미지 라고 함.

4. 환경이 정의된 이미지 파일을 이용해서 프로세스(컨테이너)를 띄움. 프로세스를 띄울 때 이미지 파일은 리드온리로 사용됨.

5. 컨테이너에서 수정한 내용을 새로운 이미지 파일로 저장할 수 있음. 컨테이너를 띄울 때 이미지 파일은 리드온리로 사용되기 때문에, 컨테이너 수정 시 원래 이미지 파일에는 영향 없음.

6. 컨테이너는 ip/port 정보도 가지고 있기에 컨테이너끼리 통신이 가능. (원리는 찾아보진 않았으나 호스트 IP를 NAT 하는건가?)

공부한건 여기까진데 일단 제가 이해한걸 정리한게 맞나 확인좀 부탁해도 될까요...

추가적으로 글 쓰면서 생각난건데, 컨테이너의 os는 호스트 os 종속적인가요? 그러니까 호스트 os가 리눅스면 컨테이너도 리눅스에서 돌아가는 것과 같나요?