unshare와 nsenter로 리눅스 네임스페이스 직접 다뤄보기

컨테이너가 "격리"된다고 할 때 그 격리를 실제로 만드는 건 커널의 네임스페이스다. 도커나 podman 없이도 unshare 명령 하나로 같은 격리를 만들 수 있고, 그렇게 해보면 컨테이너 런타임이 무엇을 조립하고 있는지가 훨씬…

Continue Readingunshare와 nsenter로 리눅스 네임스페이스 직접 다뤄보기

systemd-nspawn으로 경량 리눅스 컨테이너 직접 만들기

패키지 설치 스크립트를 깨끗한 배포판에서 검증하거나, systemd 유닛이 여러 개 도는 환경을 통째로 재현해야 할 때가 있다. 도커는 컨테이너당 프로세스 하나를 전제로 설계돼 있어 systemd를 PID 1로 올리려면 우회가 필요하고,…

Continue Readingsystemd-nspawn으로 경량 리눅스 컨테이너 직접 만들기

Ubuntu 22.04 LXC 컨테이너 사용하기

LXC(Linux Containers)는 리눅스 커널의 컨트롤 그룹(cgroup)과 네임스페이스만으로 격리된 실행 환경을 만드는 컨테이너 기술로, Docker가 내부적으로 쓰던 기반 기술이기도 하다. Docker처럼 이미지 레이어나 오케스트레이션 기능은 없지만, 그만큼 가볍고 VM에 가까운 방식으로…

Continue ReadingUbuntu 22.04 LXC 컨테이너 사용하기