lxc-copy(1) | lxc-copy(1) |
NAME¶
lxc-copy - 존재하는 컨테이너 복사
SYNOPSIS¶
lxc-copy
{-n, --name name} [-P, --lxcpath path] {-N, --newname
newname} [-p, --newpath newpath] [-B, --backingstorage
backingstorage] [-s, --snapshot] [-a, --allowrunning] [-K,
--keepname] [-D, --keepdata] [-M, --keepmac] [-L, --fssize size
[unit]] [-- hook arguments]
lxc-copy
{-n, --name name} [-P, --lxcpath path] [-N, --newname
newname] [-p, --newpath newpath] {-e, --ephemeral} [-B,
--backingstorage backingstorage] [-s, --snapshot] [-a,
--allowrunning] [-K, --keepname] [-D, --keepdata] [-M, --keepmac] [-L,
--fssize size [unit]] [-- hook arguments]
lxc-copy
{-n, --name name} [-P, --lxcpath path] [-N, --newname
newname] [-p, --newpath newpath] {-e, --ephemeral} [-B,
--backingstorage backingstorage] [-s, --snapshot] [-t, --tmpfs] [-K,
--keepname] [-M, --keepmac] [-- hook arguments]
lxc-copy
{-n, --name name} [-P, --lxcpath path] {-N, --newname
newname} [-p, --newpath newpath] {-R, --rename}
설명¶
lxc-copy는 존재하는 컨테이너의 (임시적 또는 영구적) 복사본을 생성하고, 옵션에 따라 시작하기도 한다. lxc-clone와 lxc-start-ephemeral를 대체한다.
lxc-copy는 존재하는 컨테이너의 복사본을 생성한다. 복사본은 원본 컨테이너를 말그대로 복사한 것일 수 있다. 이 경우 컨테이너의 전체 루트 파일시스템은 단순히 새로운 컨테이너로 복사된다. 또는, 원본 컨테이너를 copy-on-write한 것과 같이 스냅샷이 될 수 있다. 이 경우 복사본을 위해 지정한 저장소는 스냅샷을 지원하여야 한다. 이러한 저장소에는 현재 aufs, btrfs, lvm (lvm 장치는 스냅샷의 스냅샷은 지원하지 않음), overlay, zfs가 있다.
복사본의 저장소는 원본 컨테이너와 같은 종류가 된다. 단, aufs나 디렉토리로 구성된 컨테이너의 overlayfs 스냅샷은 예외이다.
-e가 지정되면, 원본 컨테이너의 임시 스냅샷이 생성되고 시작된다. 임시 컨테이너는 자신의 설정파일 안에 lxc.ephemeral = 1를 가지게 되며, 종료시에 제거된다. -e와 함께 -D를 같이 지정하면 원본 컨테이너의 영구적인 스냅샷이 생성되고 실행된다. -t를 지정하면, 임시 컨테이너는 tmpfs 상에 놓이게 된다. 주의: tmpfs 상에 놓인 임시 컨테이너는 재부팅시 모든 변경 사항이 사라진다.
-e는 지정하고 -N으로 새이름을 지정하지 않으면, 무작위로 이름을 정한다.
-e로 생성되고 실행되는 컨테이너들은 자신만의 마운트를 가질 수 있다. 이는 -m으로 지정된다. 현재 지원하는 마운트의 형식은 aufs, bind, overlay의 세 종류이다. 마운트 형식은 -m의 추가 인수로 지정된다. 그리고 쉼표(,)로 구분하여 여러번 지정할 수 있다. aufs와 overlay 마운트는 현재 -m overlay=/src:/dest와 같이 지정한다. dest의 대상이 지정되지 않았다면 dest는 src와 동일한 값을 가진다. 읽기 전용 bind 마운트는 -m bind=/src:/dest:ro로 읽기쓰기 가능 bind마운트는 -m bind=/src:/dest:rw로 지정한다. 읽기쓰기 가능 bind 마운트가 기본값이므로, 읽기쓰기 가능을 원한다면 rw은 빼도 무관하다. dest를 생략했다면 마찬가지로 dest는 src와 같다. 여러번 마운트는 -m bind=/src1:/dest1:ro,bind=/src2:ro,overlay=/src3:/dest3와 같이 가능하다.
-m를 통해 지원되는 마운트, 옵션, 형식은 변경될 수 있다.
옵션¶
- -N,--newname newname
- 복사본의 이름
- -p,--newpath newpath
- 복사본의 경로
- -R,--rename
- 원본 컨테이너의 이름 변경
- -s,--snapshot
- 원본 컨테이너의 스냅샷을 생성한다. 복사본의 저장소는 반드시 스냅샷을 지원해야 한다. 현재 aufs, btrfs, lvm, overlay, zfs가 가능하다.
- -a,--allowrunning
- 이미 동작중인 컨테이너의 스냅샷 생성을 허용한다. 이 작업은 사용되고 있는 파일시스템 또는 어플리케이션들에 따라 데이터 변형 또는 손실을 야기할 수도 있다. 신중히 사용해야 한다.
- -F,--foreground
- 스냅샷을 포그라운드로 실행한다. 스냅샷 콘솔은 현재 tty에 붙게 된다. (이 옵션은 -e 옵션이랑만 사용 가능하다.)
- -d, --daemon
- 데몬으로 스냅샷을 실행한다. (이는 임시 컨테이너의 기본 모드이다.) 오류가 발생하더라도 컨테이너가 tty를 가지지 않기 때문에 오류는 표시되지 않는다. 대신 로그 파일을 사용해 로그를 확인할 수 있다. 이 옵션은 -e 옵션이랑만 사용 가능하다.)
- -m, --mount mounttype
- 스냅샷의 마운트를 지정한다. 마운트 형식을 위한 opts 인자는 aufs, bind, overlay를 사용 가능하다. 예를 들면 -m bind=/src:/dest:ro,overlay=/src:/dest이다. 이 옵션은 -e 옵션이랑만 사용 가능하다.)
- -t, --tmpfs
- 이 옵션이 지정되면 임시 컨테이너는 tmpfs 상에 놓이게 된다. 주의: tmpfs 상에 놓인 임시 컨테이너는 재부팅시 모든 변경 사항이 사라진다. 이 옵션은 -e를 지정하여 임시 컨테이너를 생성할 때만 사용이 가능하다. 임시 스냅샷을 생성한 원본 컨테이너는 반드시 일반적인 디렉토리에 위치하고 있어야 한다.
- -B, --backingstorage backingstorage
- 복사본이 사용할 저장소의 형식을 지정한다. 'backingstorage'에는 'aufs', 'btrfs', 'dir', 'lvm', 'loop', 'overlay','zfs'이 사용 가능하다.
- -L, --fssize size [unit]
- 'lvm' 파일시스템의 크기를 지정한다.
- -K, --keepname
- 이 옵션이 지정되면 원본 컨테이너의 호스트이름이 복사본에서도 그대로 유지된다.
- -D, --keepdata
- 이 옵션을 -e와 지정하면 영구적인 컨테이너가 생성되고 시작된다.
- -M, --keepmac
- 이 옵션이 지정되면 원본 컨테이너의 MAC 주소가 복사본에서도 그대로 유지된다.
복사 훅¶
복사되는 컨테이너에 lxc.hook.clone가 하나 이상 지정되어 있다면, 지정한 훅들은 새로운 컨테이너를 위해 실핼될 것이다. clone 훅에게 넘겨지는 처음 3개 인자들은 컨테이너 이름, 섹션 ('lxc'), 훅의 종류 ('clone')이 될 것이다. lxc-copy에 넘겨지는 추가 인자들은 훅 프로그램에 4번째 인자부터 넘겨지기 시작한다. LXC_ROOTFS_MOUNT 환경 변수는 컨테이너의 루트 파일시스템이 마운트되어 있는 경로를 담고 있다. 설정 파일의 경로 이름은 LXC_CONFIG_FILE에, 새 컨테이너의 이름은 LXC_NAME에, 원본 컨테이너의 이름은 LXC_SRC_NAME에, 그리고 루트 파일시스템이 위치하고 있는 경로나 디바이스는 LXC_ROOTFS_PATH에 각각 담겨 있다.
공통 옵션¶
이 옵션들은 대부분의 lxc 명령어들에서 공통으로 쓰인다.
- -?, -h, --help
- 사용법을 기존 출력하는 것보다 길게 출력한다.
- --usage
- 사용법을 표시한다.
- -q, --quiet
- 결과를 표시하지 않는다.
- -P, --lxcpath=PATH
- 컨테이너 경로를 직접 지정한다. 기본값은 /var/lib/lxc이다.
- -o, --logfile=FILE
- 로그의 경로를 FILE로 지정한다. 기본값은 로그를 출력하지 않는 것이다.
- -l, --logpriority=LEVEL
- 로그 수준을 LEVEL로
지정한다. 기본값은
ERROR이다. 사용 가능한 값
: FATAL, ALERT, CRIT, WARN, ERROR, NOTICE, INFO, DEBUG, TRACE.
이 옵션은 로그 파일에만 적용된다는 사실을 주의해야 한다. stderr로 출력되는 ERROR 로그에는 영향을 끼치지 않는다.
- -n, --name=NAME
- 컨테이너 식별자로 NAME을 사용한다. 컨테이너 식별자의 형식은 알파벳-숫자 문자열이다.
- --rcfile=FILE
- 컨테이너의 가상화 및
고립 기능들을 설정할
파일을 지정한다.
이전에 만들어졌던 컨테이너에 설정 파일이 이미 있더라도, 이 옵션이 지정되어 있다면 해당 파일을 사용한다.
- --version
- 버전 정보를 표시한다.
참조¶
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)
저자¶
Christian Brauner <christian.brauner@mailbox.org>
2023-11-30 |