Proxmox VE 리눅스 컨테이너(LXC)생성

2025. 4. 14. 16:02Proxmox

 

Proxmox VE에서는 LXC(Linux Container)와 KVM(Kernel-based Virtual Machine) 두 가지의 가상화 기술을 동시에 지원한다.
오늘은 LXC에 대해 알아보고 Proxmox에서 설치 및 사용방법에 대해서도 알아보자.

1. LXC

(Linux Containers)란?

단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템 (컨테이너)들을 실행하기 위한 운영체제 수준 가상화 방법이다.
호스트 OS의 커널을 공유하면서 독립된 사용자 공간을 제공합니다.
가장 유명한 Docker 또한 해당 컨테이너 방식을 사용하여 구현 가능하다.
[출처 :Wikipedia]

1.1 LXC특징

자원(리소스) 사용 전체 OS를가상화하지 않고 호스트 커널을 공유하기 때문에 오버헤드가 적고 자원 사용 효율이 높다.
성능 오버헤드가 적기 때문에 네이티브의 성능에 가깝게 동작한다.
빠른 시작 및 종료 컨테이너는 거의 즉시 시작되고 종료된다.
높은 밀도 경량화 하여 단일 호스트에서 많은 수의 컨테이너를 실행 할 수 있다.
호환성 Linux 운영체제에 최적화 되어있다.
격리 수준 프로세스 수준의 격리를 제공하며, 보안 설정에 따라 격리 수준이 달라질 수 있음

1.2 LXC 장단점

LXC의 특징에 잘 나타나 있듯이 장단점을 구분하면 다음과 같다.
 

👍장점

  • 호스트 OS와 커널을 공유함으로 네이티브에 가까운 성능을 제공
  • 낮은 오버헤드로 자원의 효율성이 높음
  • 업데이트가 간단하며 관리 및 운영이 편리함

 
👎 단점

  • 다양한 OS지원이 어려움
  • 완전한 수준의 격리가 이뤄지지 않아 보안 문제가 발생할 가능성이 있음.
  • 커널 모듈 로딩 불가 등 일부 고급 기능은 제한될 수 있음.

1.3 LXC 활용 전략

  • 리소스 사용이 적은 경량 애플리케이션
  • 마이크로 서비스 아키텍처 서비스
  • Linux 기반의 웹 서버 및 API서버
  • 내부 개발 서버 및 테스트 환경생성

2. Proxmox VE에서 LXC서버 생성

2.1 WEB UI를 통한 생성

2.1.1 사전준비(설치파일 다운로드 및 서버저장)

  • 수동 다운로드 및 이미지 업로드

LXC를 생성하여 사용하기 위해서는 Linux를 설치할 설치 파일을 필요로 한다.
보통 linux 설치 파일(tar.gz)을 다운로드하면 직접 다운로드하는 경우 CT Templates 항목에 업로드시켜서 설치 시 사용가능하다.

직접다운받은 설치 파일 Upload

  • 자동 다운로드 및 업로드

하지만 Proxmox VE에서는 Templates을 통해 기본적인 설치 파일을 제공해 주기 때문에 여기서 다운로드하면 편하다.

Templates 항목에서 lxc 이미지 다운로드

❗참고로 local 스토리지 선택 시 CT Templates 항목이 보이지 않는 경우
Datacenter > Storage 항목의 자신의 저장공간 선택 후 Content 부분에서 Disk image, ISO image, Container template를 선택해 주면 나타나게 된다.
CT Templates 활성화

2.1.2 CT(LXC) 생성 및 설치

  • General
항목 설명
CT ID Proxmox에서 사용하는 숫자형태의 고유 ID (100 ~ 999999999) - 최대 9자리까지 가능
Hostname 말 그대로 서버 Hostname
Unprivileged container 권한 없는 컨테이너 생성여부 (※ 간략하게 호스트의 root 권한 실행여부에 따라 구분됨)
기본적으로 권한 없는 컨테이너 생성이 일반적임(권장사항)
Password
Confirm password
생성한 컨테이너의 root 패스워드
  • Template
항목 설명
Storage 컨테이너 이미지를 다운받은 Storage
Template 다운받은 컨테이너 이미지 템플릿 선택

General 및 Template 설정

  • 기타 세부사항 설정 및 최종확인 [선택사항 - ※추후 변경 가능]

이후 Disk, CPU, Memory, Network, DNS 부분은 본인의 환경에 맞춰 생성하면 된다
아래와 같이 최종확인 할 수 있으며 참고로 하단에 Start after created 항목을 체크하면 Finish를 통해 생성이 완료되는 즉시 실행된다.
생성이 완료된 LXC컨테이너는 좌측 항목에서 확인 가능하다.

최종확인 및 생성완료 컨테이너 확인

2.2 CLI를 통한 생성

pveam(Proxmox VE Appliance Manager)란? 컨테이너 이미지를 관리하는 명령줄 도구입니다.
명령어가 간단하고 직관적이라 별로 어려움 없이 사용이 가능하다.
그럼 해당 명령어를 사용하여 LXC 컨테이너 생성하는 방법을 알아보자.

  • 사용 가능 컨테이너 이미지 확인
pveam available
//--section <mail | system | turnkeylinux>
pveam available --section system //system section 리스트만 보여준다.

사용가능 lxc 컨테이너 이미지

위 내역을 보면 위 WEB UI의 Templates 항목과 동일한 정보를 확인할 수 있다.

  • 컨테이너 이미지 다운로드
pveam download <자신의 스토리지명> <다운로드파일명>
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst

컨테이너 이미지 다운로드

  • 컨테이너 이미지 확인
pveam list <자신의 스토리지명>
pveam list local

다운로드한 컨테이너 이미지 리스트

  • 이미지 삭제 및 업데이트

이외에도 이미지 리스트를 삭제하거나 이미지리스트를 수동으로 업데이트할 수 있다.

//이미지 삭제
pveam remove <template_path>

//이미지리스트 수동업데이트
pveam update
  • 이미지를 통한 LXC 컨테이너 생성

컨테이너 생성은 pveam 명령어가 아닌 pct 명령어로 사용한다.
pct 명령어는 다음 에서 확인 가능하다. [공식][사용법]

pct create <vmid> <ostemplate> [options]
pct create 101 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst //\
 // --storage local \
 // --rootfs 8G \
 // --hostname mycontainer \
 // --memory 1024 \
 // --cores 1 \
 // --net0 name=eth0,bridge=vmbr0,ip=dhcp

PCT명령어를 통한 lxc 컨테이너 생성


3. 생성된 LXC 컨테이너 실행

3.1 WEB UI를 통한 실행

실행 후 생성 시 입력한 root / 패스워드로 접근하면 확인가능하다.
참고로 Proxmox 실행 시 자동실행되도록 Options적용도 가능하다.

LXC 컨테이너 실행 및 자동실행

3.2 CLI를 통한 실행

실행 역시 PCT명령어를 통해 실행/중지도 가능하다.
아래 간단한 몇 가지 명령어만 알아보자~

  • LXC 컨테이너 실행
pct start <vmid>
pct start 100
  • LXC 컨테이너 중지
pct stop <vmid>
pct stop 100
  • LXC 컨테이너 재시작
pct restart <vmid>
pct restart 100
  • LXC 컨테이너 접속 (SSH Shell 접속)
pct enter <vmid>
pct enter 100