Scroll to navigation

lxc-unshare(1) lxc-unshare(1)

NAME

lxc-unshare - タスクの新しい名前空間の組の中ので実行

SYNOPSIS


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

説明

lxc-unshare はクローンされた名前空間の組の中でタスクを実行するのに使います。 このコマンドは主にテスト目的で使います。 このような名前であるにもかかわらず、このコマンドは常に、新しい名前空間で新しいタスクを作成するために unshare ではなく clone を使います。 テスト中のカーネルの退行は別として、これで違いは生じないはずです。

オプション

-s namespaces
アタッチする名前空間を、パイプでつなげたリストで指定します。 例えば NETWORK|IPC のようにです。 指定できる値は MOUNTPIDUTSNAMEIPCUSER NETWORK です。 これにより、プロセスのコンテキストを変更することができます。 例えば、コンテナのネットワーク名前空間だけを変更し、他の名前空間をホストのものと同じものに保ったままにするというようなことです。 (パイプ記号を MOUNT\|PID のようにエスケー プするか、 "MOUNT|PID" のように引用符号を付ける必要が>あります。)
-u user
新しいタスクを実行するユーザを指定します。
-H hostname
新しいコンテナ内でのホスト名を設定します。UTSNAME 名前空間を指定している時のみ有効です。
-i interfacename
指定したインターフェースをコンテナ内に移動させます。ネットワーク (NETWORK) 名前空間を指定している時のみ有効です。複数のインターフェースをコンテナに移動させるために複数回指定することも可能です。
-d
デーモンにします (コマンドはコンテナの終了を待ちません)。
-M
コンテナ内でデフォルトのファイルシステム (/proc, /dev/shm, /dev/mqueue) をマウントします。マウント (MOUNT) 名前空間を指定している時のみ有効です。

自身の UTS(hostname)名前空間でシェルを起動するには以下のように実行します。
          lxc-unshare -s UTSNAME /bin/bash
        
もし、そのシェル上でホスト名を変更しても、その変更はホストには反映されません。
新しいネットワーク、pid、マウント名前空間でシェルを起動するには以下のように実行します。
          lxc-unshare -s "NETWORK|PID|MOUNT" /bin/bash
        
その結果起動するシェルは pid が 1 となり、ネットワークインターフェースがないでしょう。 そのシェル上で /proc を再マウントした後
          mount -t proc proc /proc
        
ps の出力は、その名前空間内には他のプロセスが存在しない事を表示するでしょう。
新しいネットワーク、PID、マウント、ホスト名 (UTS) 名前空間でシェルを起動するには、
          lxc-unshare -s "NETWORK|PID|MOUNT|UTSNAME" -M -H slave -i veth1 /bin/bash
        
起動したシェルは PID 1 を持ち、2 つのネットワークインターフェース (lo と veth1) を持ちます。 ホスト名は "slave" となり、/proc は再マウントされます。ps コマンドは、名前空間内には他のプロセスがない状態を表示するでしょう。

SEE ALSO

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>
2017-03-15