Scroll to navigation

lxc-create(1) lxc-create(1)

NAME

lxc-create - 컨테이너 생성

SYNOPSIS


lxc-create
{-n name} [-f config_file] {-t template} [-B backingstore] [-- template-options]

설명

lxc-create는 설정정보와 사용자 정보가 저장되는 시스템 객체를 생성한다. name은 다른 lxc 명령어들에서 특정 컨테이너를 지정하는데 사용된다.

객체는 /var/lib/lxc에 작성되는 디렉토리이며, 자신의 name으로 구분되어 진다.

객체는 응용 프로그램이 사용할 수 있고 볼 수 있는 여러 자원들의 정의이다. 설정파일이 많은 정보를 담고 있을수록 컨테이너는 더욱더 고립될 수 있고, 응용 프로그램은 더욱더 격리될 수 있다.

만약 설정파일 config_file가 지정되지 않았다면, 컨테이너는 프로세스, sysv ipc, 마운트 포인트에 대한 기본적인 고립 상태로 만들어진다.

옵션

컨테이너 가상화 및 고립 기능을 설정하는 설정파일을 지정한다.
lxc-create 명령어는 'lxc-template' 스크립트를 호출한다. template은 'lxc-template' 스크립트의 짧은 이름으로, busybox, debian, fedora, ubuntu, sshd 등이 있다. 스크립트의 구조에 대해 궁금할 때는 /usr/share/lxc/templates에 있는 예제들을 참고하면 된다. template 대신 스크립트의 전체 경로를 지정할 수도 있다. "none"으로 지정하면 루트파일시스템 생성을 강제로 건너뛸 수 있다.
'backingstore'는 'dir', 'lvm', 'loop', 'btrfs', 'zfs', 'rbd', 'best'를 지정할 수 있다. 기본 값은 'dir'로 컨테이너 루트 파일시스템을 의미하며 /var/lib/lxc/container/rootfs이하 디렉토리를 가리킨다. 'dir'은 옵션으로 컨테이너 루트 파일시스템이 어느 경로에 위치할지 지정할 수 있으며, --dir ROOTFS로 가능하다. ('none'은 'dir'과 동일하다) 'btrfs'가 지정되어 있다면, 타겍 파일시스템은 반드시 btrfs여야 한다. 그리고 컨테이너 루트 파일시스템은 새로운 서브볼륨으로 생성된다. 이는 스냅샷된 복제물을 만들지만, rsync --one-filesystem는 분리된 파일시스템으로 취급하게 된다. 'lvm'으로 지정되있다면, lvm 블록 디바이스가 사용되며, 이때 사용가능한 옵션은 다음과 같다 : --lvname lvname1는 이름이 lvname1인 LV를 만든다(기본값은 컨테이너 이름). --vgname vgname1는 이름이 vgname1인 볼륨그룹 안에 LV를 만든다(기본값은 lxc). --thinpool thinpool1thinpool1라는 풀 안에 있는 thin-provisioned 볼륨으로 LV를 만든다(기본값은 lxc). --fstype FSTYPE는 LV의 파일시스템을 FSTYPE으로 지정한다(기본값은 ext4). --fssize SIZE는 LV의 크기를 지정한다(기본값은 1G).

'loop'로 지정되어 있다면, 'lvm'과 비슷하게 --fstype FSTYPE--fssize SIZE를 사용할 수 있다(기본값은 'lvm'과 동일).

'rbd'로 지정되어 있다면, ceph.conf내 적절하게 설정사항이 있어야 하고 ceph.client.admin.keyring가 정의되어 있어야 한다. 아래 옵션을 지정할 수 있다 : --rbdname RBDNAME는 생성하는 블록 장치의 이름을 RBDNAME로 지정한다(기본값은 컨테이너의 이름). --rbdpool POOL는 블록 장치를 넣을 풀을 POOL로 지정한다(기본값은 'lxc').

'best'로 지정되어 있다면, lxc는 btrfs, zfs, lvm, dir의 순서대로 시도해본다.

이것은 template-options를 템플릿에게 인수로 넘긴다. 만약 어떤 인수를 템플릿에서 지원하는지 보고 싶다면, lxc-create -t TEMPLATE -h를 사용하면 된다.

공통 옵션

이 옵션들은 대부분의 lxc 명령어들에서 공통으로 쓰인다.

-?, -h, --help
사용법을 기존 출력하는 것보다 길게 출력한다.
사용법을 표시한다.
결과를 표시하지 않는다.
컨테이너 경로를 직접 지정한다. 기본값은 /var/lib/lxc이다.
로그의 경로를 FILE로 지정한다. 기본값은 로그를 출력하지 않는 것이다.
로그 수준을 LEVEL로 지정한다. 기본값은 ERROR이다. 사용 가능한 값 : FATAL, ALERT, CRIT, WARN, ERROR, NOTICE, INFO, DEBUG, TRACE.

이 옵션은 로그 파일에만 적용된다는 사실을 주의해야 한다. stderr로 출력되는 ERROR 로그에는 영향을 끼치지 않는다.

컨테이너 식별자로 NAME을 사용한다. 컨테이너 식별자의 형식은 알파벳-숫자 문자열이다.
컨테이너의 가상화 및 고립 기능들을 설정할 파일을 지정한다.

이전에 만들어졌던 컨테이너에 설정 파일이 이미 있더라도, 이 옵션이 지정되어 있다면 해당 파일을 사용한다.

버전 정보를 표시한다.

진단

메시지에 나와있는 대로, 이미 같은 이름의 컨테이너가 존재하는 경우이다. lxc-ls 명령어를 사용하여 시스템에 이미 존재하는 컨테이너를 확인해볼 수 있다.

참조

lxc(7), lxc-create(1), lxc-copy(1), lxc-destroy(1), lxc-start(1), lxc-stop(1), lxc-execute(1), lxc-console(1), lxc-monitor(1), lxc-wait(1), lxc-cgroup(1), lxc-ls(1), lxc-info(1), lxc-freeze(1), lxc-unfreeze(1), lxc-attach(1), lxc.conf(5)

저자

Daniel Lezcano <daniel.lezcano@free.fr>

2023-11-30