lxc-unshare(1) | lxc-unshare(1) |
lxc-unshare - 새로운 네임스페이스 내에서 태스크 실행
lxc-unshare
{-s, --namespaces namespaces} [-u, --user user] [-H, --hostname
hostname] [-i, --ifname ifname] [-d, --daemon] [-M, --remount]
{command}
lxc-unshare는 복제된 네임스페이스 내에서 태스크를 실행한다. 이 명령어는 주로 테스트 목적으로 사용된다. 이러한 이름에도 불구하고, 새 네임스페이스에 새로운 태스크를 생성하기 위해 unshare 대신 clone을 사용한다. 테스트 중인 커널 버전이 낮아지지 않는다면, 별 차이는 없다.
자신만의 UTS(hostname) 네임스페이스를 갖는 새로운 쉘을 실행하려면 아래처럼 하면 된다.
lxc-unshare -s UTSNAME /bin/bash
만약, 그 쉘에서 호스트이름이 변경되어도 호스트에는 영향을 끼치지 않는다.
새로운 네트워크, PID, 마운트 네임스페이스 내에 쉘을 실행하려면, 아래처럼 하면 된다.
lxc-unshare -s "NETWORK|PID|MOUNT" /bin/bash
그 결과 생긴 쉘은 1번 pid를 갖는다. 그리고 네트워크 인터페이스는 없다. 이 쉘에서 아래처럼 /proc을 다시 마운트하고
mount -t proc proc /proc
ps 명령어를 입력하면, 네임스페이스 내에서 다른 프로세스들은 보이지 않을 것이다.
새로운 네트워크, PID, 마운트 그리고 호스트 이름(UTS) 네임스페이스 내에 쉘을 실행하려면, 아래처럼 하면 된다.
lxc-unshare -s "NETWORK|PID|MOUNT|UTSNAME" -M -H myhostname -i veth1 /bin/bash
그 결과 생긴 쉘은 1번 pid를 갖는다. 그리고 2개의 네트워크 인터페이스(lo와 veth1)를 갖는다. 호스트 이름은 "myhostname"이고, /proc은 다시 마운트 된다. ps 명령어를 입력하면, 네임스페이스 내에서 다른 프로세스들은 보이지 않을 것이다.
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>
2019-04-14 |