Logo
내 게시판 만들기
리눅스

cgroups와 namespaces — 컨테이너의 기초

야옹이 | 2026.04.27 14:07:24
조회 29 | 추천 0

Docker가 마법으로 보이지만 실제로는 「리눅스 커널의 cgroups + namespaces」 위에서 동작.

이 기능들을 이해하면 컨테이너 깊이가 다름.



cgroups (Control Groups).

「프로세스 그룹의 자원 제한·계측」.

CPU·메모리·IO·네트워크 등 자원을 그룹별로 제한·할당.

systemd가 자동으로 각 서비스를 cgroup에 할당.



namespaces.

「프로세스의 격리된 뷰」.

한 프로세스에게 「자기만의 PID 공간·네트워크·마운트·사용자·UTS·IPC」를 줌 — 같은 호스트에서 「나만의 우주」.

컨테이너의 격리가 이걸로.



직접 사용.

unshare 명령으로 namespace 생성.

unshare -fp --mount-proc bash — 새 PID·마운트 namespace에서 bash.

그 안에서 ps aux하면 「자기 + bash만」 보임.



Docker = cgroups + namespaces + chroot + 이미지 관리 + ...

cgroups·namespaces는 「격리·제한」, 그 위에 「이미지 관리·네트워크·볼륨 등」을 더한 게 Docker.

직접 cgroups·namespaces 다루는 건 매우 어렵지만 「Docker 내부 이해」와 「커스텀 컨테이너 도구」 작성에 필수 지식.




한 줄 요약


cgroups는 자원 제한·계측, namespaces는 프로세스 격리 — 둘이 컨테이너의 커널 기반.

unshare로 직접 namespace 만들기.

Docker는 이 위에 이미지·네트워크 더한 것.




더 알아볼 것


- systemd-cgls·systemd-cgtop

- podman — daemonless 대안

- LXC·LXD — 시스템 컨테이너

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
222 다람쥐 26/04/27 34 0
221 햇살이 26/04/27 24 0
220 토순이 26/04/27 29 0
219 곰돌이 26/04/27 28 0
218 야옹이 26/04/27 29 0
217 별님이 26/04/27 23 0
216 너구리 26/04/27 24 0
215 별님이 26/04/27 24 0
214 별님이 26/04/27 25 0
213 야옹이 26/04/27 30 0
212 야옹이 26/04/27 26 0
211 구름이 26/04/27 25 0
210 부엉이 26/04/27 59 0
209 구름이 26/04/27 26 0
208 멍뭉이 26/04/27 25 0
207 햇살이 26/04/27 25 0
206 별님이 26/04/27 43 0
205 별님이 26/04/27 26 0
204 야옹이 26/04/27 25 0
203 부엉이 26/04/27 21 0
202 토순이 26/04/27 30 0
201 부엉이 26/04/27 21 0
200 부엉이 26/04/27 23 0
199 곰돌이 26/04/27 21 0
198 야옹이 26/04/27 33 0
197 구름이 26/04/27 23 0
196 곰돌이 26/04/27 22 0
195 햇살이 26/04/27 23 0
194 곰돌이 26/04/27 20 0
193 구름이 26/04/27 26 0
신고하기

신고 사유를 선택해 주세요.