LXC(LinuX Containers)
LXC(LinuX Containers)는 단일 리눅스 시스템에 동작하고 있는 프로세스를 격리시켜 각 프로세스마다 독자적인 리눅스 시스템 환경을 구축하는 것을 의미한다. 일반적으로 가상화는 Hypervisor라는 논리적 플랫폼을 이용해 하나의 Host OS 위에 여러 Guest OS를 구동하는 기술이다. 이와 달리 LXC는 하나의 리눅스 시스템에서 프로세스들을 격리시켜 독자적인 시스템환경을 구축한다. 즉, 리눅스 컨테이너에서 가상화된 프로세스들은 모두 리눅스 시스템을 호환해야 한다.
Docker는 LXC 기반으로 만들어진 CRI (Container Runtime Interface)다. 하지만 이 둘은 차이점이 있다.
구조
LXC 와 Docker의 차이점
Linux OS와 Linux Image를 사용하는 차이점이다.
*OS = kernel + filesystem/librarires, Image = filesystem/librarires
Docker 컨테이너 안에서 실행되는 것은 Ubuntu Image, 즉 base Image인 Ubuntu filesystem/libraries 이지 Ubuntu OS에 있는 커널이 아니다. 예를 들어 호스트에서 Redhat 커널을 사용하지만 Docker 컨테이너에서 Ubuntu Image가 실행되는 경우는 Ubuntu의 기능을 사용하는 효과를 볼 수 있다.
간단
Linux 컨테이너(LXC)는 설계가 더 유연하다. 가상 머신에 조금 더 가깝다. VM과 동일한 방식으로 LXC를 사용하여 무엇이든 구성하고 설치할 수 있다. chroot, cgroups및 같은 커널 기능 namespaces을 활용하여 LXC 가상 환경을 만들 수 있다. 이러한 커널 메커니즘은 시스템의 나머지 부분에 대한 프로세스의 리소스 사용 및 가시성을 제어하는 데 도움이 된다.
https://ko.linux-console.net/?p=1666#gsc.tab=0
LXC 가상화 설치
LXC 가상화는 Epel 리포지토리를 통해 제공되기 때문에 다운받자.
yum install epel-release
![](https://blog.kakaocdn.net/dn/JfMsY/btrTRZum02s/6zvLi62wnfGaHHw8A8IRB0/img.png)
Perl 언어 인터프리터와 debootstrap 패키지가 추가로 필요하다.
yum install debootstrap perl libvirt
![](https://blog.kakaocdn.net/dn/XFeIT/btrTRF3IxC7/NZBghxm6e8nCb3S8aNkqK1/img.png)
LXC 가상화 솔루션을 설치합니다.
yum install lxc lxc-templates
![](https://blog.kakaocdn.net/dn/cdqc2x/btrTUEbVqXL/sDBUrt4Qi47bBExEOtcOG1/img.png)
LXC 및 libvirt 데몬이 실행시키고 확인한다.
systemctl start lxc.service
systemctl start libvirtd
systemctl status lxc.service
![](https://blog.kakaocdn.net/dn/zqxpX/btrTR0mrIfR/5hDXFJT8hdwh7xdSMGZNo0/img.png)
LXC 커널 가상화 상태도 확인한다.
lxc-checkconfig
![](https://blog.kakaocdn.net/dn/NMu4r/btrT1HemB4f/RkpKR8m2LjDtXn11q0VOU0/img.png)
LXC 컨테이너 생성 및 관리
시스템에 이미 설치된 LXC 템플릿 컨테이너의 위치는 다음과 같다. 확인해보자.
ls -alh /usr/share/lxc/templates/
용량이 진짜 뽀짝하다.
![](https://blog.kakaocdn.net/dn/L1qOk/btrTVTUbZfY/KDCqSWqc2VDq4VqRSe5MR0/img.png)
LXC 컨테이너를 생성해 보자.
lxc-create -n container_name -t container_template
'Docker' 카테고리의 다른 글
Dockerfile (개인 프로젝트) (0) | 2022.12.21 |
---|---|
HAProxy - Multi LoadBalancing (0) | 2022.12.13 |
Docker : Link (0) | 2022.12.09 |
Docker : Network (0) | 2022.12.09 |
Volume / bind mount ( Container Data 공유) (0) | 2022.12.09 |