Docker는 경량화된 컨테이너를 만들어 쉽게 배포할 수 있도록 지원하는 컨테이너화 기술이다.
Docker Container를 띄울 수 있는 Docker Engine이 설치되어 있다면, 다른 환경에서 유연하게 실행할 수 있습니다. 과거 Linux Container와 달리 시스템 설정이 간단하며, 애플리케이션과 필요한 라이브러리만을 통해 경량화된 상태로 배포할 수 있다.
Linux의 namespace는 커널 수준에서 프로세스를 격리하는 기능으로, 서로 독립된 환경으로 분리하는 가상화 기술이다.
1.2 namespace Role
namespace로 격리된 프로세스들은 같은 시스템에서 실행되지만, 특정 리소스(파일 시스템, 네트워크, PID, 사용자 ID)를 서로 독립적으로 사용할 수 있도록 제한되어 있다. (서로 간섭할 수 없음)
1.3 namespace Type
PID : 독립적인 프로세스 공간 할당
Mount : 독립적인 파일 시스템 마운트
Network: namespace 간 네트워크 충돌 방지
UTS : 독립적인 hostname 할당
IPC : 프로세스간 독립적인 통신 통로 할당
User : 독립적인 사용자 할당
💬 Namespace를 통해 동일한 PID를 가질 수도 있다? Linux의 PID namespace를 사용하면, 하나의 시스템 내에서 동일한 PID를 가진 프로세스가 존재할 수 있다. 이는 각 PID namespace가 서로 독립적인 프로세스 ID 공간을 가지기 때문이다.
2. cgroup
control group의 약자로, 하드웨어 자원을 배분하는 기능을 수행합니다.
격리된 프로세스에 하드웨어 자원을 배분하기 위해서 cgroup 기능을 사용합니다.
→ cgroup을 사용하면 CPU, RAM 등의 자원을 사용자가 원하는 만큼 격리된 프로세스에 할당해 줄 수 있습니다.
Docker는 경량화된 컨테이너를 만들어 쉽게 배포할 수 있도록 지원하는 컨테이너화 기술이다.
Docker Container를 띄울 수 있는 Docker Engine이 설치되어 있다면, 다른 환경에서 유연하게 실행할 수 있습니다. 과거 Linux Container와 달리 시스템 설정이 간단하며, 애플리케이션과 필요한 라이브러리만을 통해 경량화된 상태로 배포할 수 있다.
Linux의 namespace는 커널 수준에서 프로세스를 격리하는 기능으로, 서로 독립된 환경으로 분리하는 가상화 기술이다.
1.2 namespace Role
namespace로 격리된 프로세스들은 같은 시스템에서 실행되지만, 특정 리소스(파일 시스템, 네트워크, PID, 사용자 ID)를 서로 독립적으로 사용할 수 있도록 제한되어 있다. (서로 간섭할 수 없음)
1.3 namespace Type
PID : 독립적인 프로세스 공간 할당
Mount : 독립적인 파일 시스템 마운트
Network: namespace 간 네트워크 충돌 방지
UTS : 독립적인 hostname 할당
IPC : 프로세스간 독립적인 통신 통로 할당
User : 독립적인 사용자 할당
💬 Namespace를 통해 동일한 PID를 가질 수도 있다? Linux의 PID namespace를 사용하면, 하나의 시스템 내에서 동일한 PID를 가진 프로세스가 존재할 수 있다. 이는 각 PID namespace가 서로 독립적인 프로세스 ID 공간을 가지기 때문이다.
2. cgroup
control group의 약자로, 하드웨어 자원을 배분하는 기능을 수행합니다.
격리된 프로세스에 하드웨어 자원을 배분하기 위해서 cgroup 기능을 사용합니다.
→ cgroup을 사용하면 CPU, RAM 등의 자원을 사용자가 원하는 만큼 격리된 프로세스에 할당해 줄 수 있습니다.