シンプルハンドLXC(Linux Containers)

2618 ワード

LXCはLinux containersの略称で、オペレーティングシステムレベルの仮想化技術です.オペレーティングシステム階層でプロセスに仮想的な実行環境を提供します.仮想実行環境はコンテナ(container)と呼ばれます.コンテナに特定のcpuノードとmemoryノードをバインドし、特定の割合のcpu時間、IO時間を割り当て、使用可能なメモリサイズ(メモリとswap空間を含む)を制限し、deviceアクセス制御を提供し、独立したnamespace(ネットワーク、pid、ipc、mnt、uts)を提供することができる.
Dockerを知っていればLXCを聞いたことがあるかもしれません.
インストールsudo apt-get install lxc
システムテンプレートの表示
ls /usr/share/lxc/templates/

lxc-alpine     lxc-centos    lxc-fedora        lxc-oracle
lxc-altlinux   lxc-cirros    lxc-gentoo        lxc-plamo
lxc-archlinux  lxc-debian    lxc-openmandriva  lxc-sshd
lxc-busybox    lxc-download  lxc-opensuse      lxc-ubuntu

システムの作成
時間がかかる
sudo lxc-create -t ubuntu -n zqw
# -n   name   

開始sudo lxc-start -n zqw -d
lxcが作成したシステムを表示sudo lxc-ls
コンソールからシステムへsudo lxc-console -n zqw、システム内でshellを実行できます.
ていしlxc-stop -n zqw
プロファイルによるシステムへのアクセス
# gitian     
# https://github.com/devrandom/gitian-builder/blob/master/etc/lxc.config.in

lxc.tty = 4
lxc.pts = 1024
lxc.rootfs = ROOTFS
lxc.arch = ARCH
lxc.cgroup.devices.deny = a
# /dev/null and zero
lxc.cgroup.devices.allow = c 1:3 rwm
lxc.cgroup.devices.allow = c 1:5 rwm
# consoles
lxc.cgroup.devices.allow = c 5:1 rwm
lxc.cgroup.devices.allow = c 5:0 rwm
lxc.cgroup.devices.allow = c 4:0 rwm
lxc.cgroup.devices.allow = c 4:1 rwm
# /dev/{,u}random
lxc.cgroup.devices.allow = c 1:9 rwm
lxc.cgroup.devices.allow = c 1:8 rwm
lxc.cgroup.devices.allow = c 136:* rwm
lxc.cgroup.devices.allow = c 5:2 rwm
# rtc
lxc.cgroup.devices.allow = c 254:0 rwm

# mounts points
lxc.mount.entry=proc ROOTFS/proc proc nodev,noexec,nosuid 0 0
lxc.mount.entry=sysfs ROOTFS/sys sysfs defaults  0 0

# Container with network virtualized using a pre-configured bridge named br0 and
# veth pair virtual network devices
# On the host, run: ifconfig br0 up 10.0.2.2
# Alternatively, you can use another IP range for the bridge interface, in this case set
# the environment variables GITIAN_HOST_IP and LXC_GUEST_IP appropriately.
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = GUESTLINK
lxc.network.ipv4 = GUESTIP/24
lxc.network.ipv4.gateway = auto

lxc.utsname = gitian
sudo lxc-start -n gitian -f gitian-builder/var/lxc.config
sudo lxc-attach -n gitian -f gitian-builder/var/lxc.config

# -n name  
# -f file  ,         

参照先:
https://segmentfault.com/a/1190000000443812
https://www.ibm.com/developerworks/cn/linux/l-lxc-containers/
https://knowledge.sakura.ad.jp/2108/日本語