lxc-copy(1) | lxc-copy(1) |
lxc-copy - 존재하는 컨테이너 복사
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를 통해 지원되는 마운트, 옵션, 형식은 변경될 수 있다.
복사되는 컨테이너에 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 명령어들에서 공통으로 쓰인다.
이 옵션은 로그 파일에만 적용된다는 사실을 주의해야 한다. stderr로 출력되는 ERROR 로그에는 영향을 끼치지 않는다.
이전에 만들어졌던 컨테이너에 설정 파일이 이미 있더라도, 이 옵션이 지정되어 있다면 해당 파일을 사용한다.
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 |