このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
lxc-executeコマンドを使用して、システムの他の部分から効果的に分離された一時アプリケーション・コンテナを作成し、そこでコマンドを実行できます。 たとえば次のコマンドでは、sleepを100秒間実行するguest
という名前のアプリケーション・コンテナが作成されます。
[root@host ~]# lxc-execute -n guest -- sleep 100
コンテナがアクティブな間は、別のウィンドウからlxc-ls --activeおよびlxc-info -n guestなどのコマンドを実行して監視できます。
[root@host ~]#lxc-ls --active
guest [root@host ~]#lxc-info -n guest
state: RUNNING pid: 7021
アプリケーション・コンテナをカスタマイズする必要がある場合は、構成ファイルを使用できます。 たとえば、コンテナのネットワーク構成またはマウントされるシステム・ディレクトリを変更できます。
次の例は、lxc-init
と特定のライブラリ・パスおよびディレクトリ・パスを使用可能にするマウント・エントリの場合を除き、rootfs
がほとんど共有されていないサンプルの構成ファイルからの設定を示しています。
lxc.utsname = guest lxc.tty = 1 lxc.pts = 1 lxc.rootfs = /tmp/guest/rootfs lxc.mount.entry=/lib /tmp/guest/rootfs/lib none ro,bind 0 0 lxc.mount.entry=/usr/libexec /tmp/guest/rootfs/usr/lib none ro,bind 0 0 lxc.mount.entry=/lib64 /tmp/guest/rootfs/lib64 none ro,bind 0 0 lxc.mount.entry=/usr/lib64 /tmp/guest/rootfs/usr/lib64 none ro,bind 0 0 lxc.mount.entry=/bin /tmp/guest/rootfs/bin none ro,bind 0 0 lxc.mount.entry=/usr/bin /tmp/guest/rootfs/usr/bin none ro,bind 0 0 lxc.cgroup.cpuset.cpus=1
/usr/libexec
のマウント・エントリは、コンテナがホスト・システム上の/usr/libexec/lxc/lxc-init
にアクセスできるようにするために必要です。
例に使用されている構成ファイルは、/bin
および/usr/bin
の両方をマウントします。 実際には、アプリケーション・コンテナでマウントするホスト・システム・ディレクトリを、コンテナがアプリケーションを実行するために必要なディレクトリのみに制限する必要があります。
システム・コンテナとの競合の可能性を避けるために、/container
ディレクトリをアプリケーション・コンテナに使用しないでください。
必要なディレクトリをrootfs
ディレクトリの下に構成することも必要です。
[root@host ~]#TMPDIR=/tmp/guest/rootfs
[root@host ~]#mkdir -p $TMPDIR/lib $TMPDIR/usr/lib $TMPDIR/lib64 $TMPDIR/usr/lib64 \ $TMPDIR/bin $TMPDIR/usr/bin $TMPDIR/dev/pts $TMPDIR/dev/shm $TMPDIR/proc
この例では、構成ファイルに定義されたマウント・ポイント・エントリに加えて/dev/pts
、/dev/shm
および/proc
もディレクトリに含まれています。
次に、-fオプションを使用してlxc-executeに構成ファイル(config
)を指定できます。
[root@host ~]# lxc-execute -n guest -f config -- ps -ef
UID PID PPID C STIME TTY TIME CMD
0 1 0 0 08:56 ? 00:00:00 /usr/lib/lxc/lxc-init -- ps -ef
0 2 1 0 08:56 ? 00:00:00 ps -ef
この例は、psコマンドがlxc-init
の子として実行されることを示しています。
システム・コンテナに関しては、cgroup
エントリを構成ファイルに設定し、lxc-cgroupコマンドを使用して、アプリケーション・コンテナがアクセスできるシステム・リソースを制御できます。
lxc-executeは、ホストのrootファイル・システムを共有するアプリケーション・コンテナを実行するためのもので、lxc-createを使用して作成するシステム・コンテナを実行するためのものではありません。 システム・コンテナを実行するにはlxc-startを使用します。
詳細は、lxc-execute(1)
およびlxc.conf(5)
の各マニュアル・ページを参照してください。