Provided by: lxc-utils_3.0.3-0ubuntu1~18.04.3_amd64 bug

NAME

       lxc-unshare - 새로운 네임스페이스 내에서 태스크 실행

SYNOPSIS

       lxc-unshare {-s, --namespaces namespaces} [-u, --user user] [-H, --hostname hostname] [-i,
                   --ifname ifname] [-d, --daemon] [-M, --remount] {command}

설명

       lxc-unshare는 복제된 네임스페이스 내에서  태스크를  실행한다.   이  명령어는  주로  테스트
       목적으로  사용된다.   이러한 이름에도 불구하고, 새 네임스페이스에 새로운 태스크를 생성하기
       위해 unshare 대신 clone을 사용한다.  테스트 중인 커널 버전이 낮아지지 않는다면, 별  차이는
       없다.

옵션

       -s, --namespaces namespaces
              붙일  네임스페이스를  지정한다.   NETWORK|IPC와  같이  파이프(|)로  구분된 리스트를
              사용할 수 있다. 허용되는 값은 MOUNT, PID, UTSNAME, IPC, USER  ,  NETWORK이다.  이를
              사용하여,  컨테이너의  네트워크  네임스페이스를  사용하면서도  다른  네임스페이스는
              호스트의 것을 그대로 사용하는 등의 조작이 가능하다.  (파이프 기호는  MOUNT\|PID처럼
              \로 처리를 해주거나, "MOUNT|PID"처럼 따옴표를 붙여야 한다.)

       -u, --user user
              새로운 태스크를 실행할 사용자를 지정한다.

       -H, --hostname hostname
              새로운   컨테이너의  호스트이름을  지정한다.  UTS  네임스페이스가  설정되었을  때만
              가능하다.

       -i, --ifname interfacename
              지정한 이름의 네트워크 인터페이스를 컨테이너 내부로 옮긴다. NETWORK  네임스페이스가
              설정되었을  때만  가능하다.  여러개의  인터페이스를  옮기기  위해  여러번 이 인수를
              지정하는 것도 가능하다.

       -d, --daemon
              데몬화 한다. (컨테이너가 종료되기 전까지 기다리지 않는다)

       -M, --remount
              컨테이너 내부에 (/proc /dev/shm and /dev/mqueue)같은 기본  파일  시스템들을  마운트
              한다. MOUNT 네임스페이스가 설정되었을 때만 가능하다.

예제

       자신만의 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>

                                            2023-05-05                             lxc-unshare(1)