1. 도커란?
- [명사] 부두[항만] 노동자
- 컨테이너를 기반으로 하여 특정한 서비스를 패키징하고 배포하는데 유용한 오픈소스 프로그램
2. 컨테이너
- 사전적 의미로 어떤 물체를 격리하는 공간
- 선박의 컨테이너 처럼 프로세스가 사용하는 자원을 격리 하는 것
- 애플리케이션을 관련 라이브러리 및 종속 항목과 함께 패키지로 묶어 소프트웨어 서비스 구동을 위한 격리 환경
3. 전통적인, 가상화, 컨테이너(도커) 환경 비교
4. 어떻게 프로세스에 할당하는 자원을 분리할까?
- Namespace 이용
: Mount namespace : 파일 시스템 분리 / 마운트 포인트 별개로 부여
: UTS namespace : 호스트 네임 분리 / 컨테이너에게 자체적으로 소스트 네임과 도메인 이름을 주는거
: IPC namespace : 프로세스간 통신 분리 / IPC(프로세스간 통신) V IPC, POSIX 메시키 큐 시스템을 호스트로부터 분리
: User namespace : 유저(UID/GID) 분리 / 호스트의 사용자와 그룹 id를 서로 분리
: PID namespace : 프로세스 테이블 분리 / Namespace 내부에서 실행되는 process들은 기존 pid 할당순서와 별개로 pid 부여
: Network namespace : 네트워크 설정 분리 / virtual Ethernet devices를 페어로 생성 가상의 케이블로 연결하는 효과.
- cgroups (Control Groups) 이용
: 메모리, CPU, I/O, 네트워크, device노드
출처 : likefree.tistory.com/18?category=1002427