生信软件札记

简述Linux容器和lxc

2018-12-31  本文已影响12人  任总

一、linux容器

Linux 容器 (LXC - linux container)

2、Linux 容器相关的2个重要概念

cgroups(控制组)
Namespace (命名空间)

二、lxc概述

image.png

三、lxc的简单应用

1、安装

[root@node-64 ~]# yum install epel-release -y
[root@node-64 ~]# yum install lxc lxc-templates -y

2、简单使用

[root@node-64 ~]# lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-3.10.0-693.el7.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
newuidmap is not installed
newgidmap is not installed
Network namespace: enabled
Multiple /dev/pts instances: enabled

--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled

--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
Bridges: enabled
Advanced netfilter: enabled
CONFIG_NF_NAT_IPV4: enabled
CONFIG_NF_NAT_IPV6: enabled
CONFIG_IP_NF_TARGET_MASQUERADE: enabled
CONFIG_IP6_NF_TARGET_MASQUERADE: enabled
CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled

--- Checkpoint/Restore ---
checkpoint restore: enabled
CONFIG_FHANDLE: enabled
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
CONFIG_UNIX_DIAG: enabled
CONFIG_INET_DIAG: enabled
CONFIG_PACKET_DIAG: enabled
CONFIG_NETLINK_DIAG: enabled
File capabilities: enabled

Note : Before booting a new kernel, you can check its configur
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig   #也可以指明配置文件路径

lxc-create:创建lxc容器;

格式:lxc-create -n NAME -t TEMPLATE_NAME
lxc-start:启动容器;
lxc-start -n NAME -d
lxc-info:查看容器相关的信息;
lxc-info -n NAME
lxc-console:附加至指定容器的控制台;
lxc-console -n NAME -t NUMBER
lxc-stop:停止容器;
lxc-destory:删除处于停机状态的容器;
lxc-snapshot:创建和恢复快照;

lxc自带了很多模板,可以修改对应模板中的配置

[root@node-64 ~]# ls /usr/share/lxc/templates/
lxc-alpine     lxc-busybox  lxc-debian    lxc-gentoo        lxc-oracle  lxc-ubuntu
lxc-altlinux   lxc-centos   lxc-download  lxc-openmandriva  lxc-plamo   lxc-ubuntu-cloud
lxc-archlinux  lxc-cirros   lxc-fedora    lxc-opensuse      lxc-sshd

有需要可修改对应模板中仓库url,这里使用默认即可

[base]
name=CentOS-$release - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$release&arch=$basearch&repo=os
baseurl=https:// xxxxxx #修改仓库路径

创建容器

[root@node-64 templates]# lxc-create --name c1 -t centos

#容器创建后会自动生成一个秘码,可以使用下面命令修改秘码
[root@node-64 templates]# chroot /var/lib/lxc/c1/rootfs passwd

#查询容器信息
[root@node-64 templates]# lxc-info --name c1

给新创建的容器创建网络,首先创建网桥

#安装网桥工具
[root@node-64 ~]# yum install bridge-utils -y
#添加virbr0网桥
[root@node-64 ~]# brctl addbr virbr0
# 启动virbr0网桥
[root@node-64 ~]# ip link set dev virbr0 up
#给网桥添加地址
[root@node-64 ~]# ip addr add 10.0.0.254/24 dev virbr0
[root@node-64 ~]# ip addr l
...........
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether fe:36:d4:87:44:87 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.254/24 scope global virbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::8849:9bff:fe03:38ab/64 scope link 
       valid_lft forever preferred_lft forever

#打开核心转发
[root@node-64 ~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
[root@node-64 ~]# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE


启动容器

[root@node-64 ~]# lxc-start --name c1
CentOS Linux 7 (Core)
Kernel 3.10.0-693.el7.x86_64 on an x86_64

c1 login: root
Password:输入密码登录容器

给容器配置网络

#添加ip地址
[root@c1 ~]# ip addr add 10.0.0.1/24 dev eth0
[root@c1 ~]# ip a l
........
4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fe:64:24:53:c6:53 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.0.0.1/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::fc64:24ff:fe53:c653/64 scope link 
       valid_lft forever preferred_lft forever

#添加路由
[root@c1 ~]# ip route add 0.0.0.0/0.0.0.0 via 10.0.0.254
[root@c1 ~]# ip route l
default via 10.0.0.254 dev eth0 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1 

#测试ping虚拟网桥
[root@c1 ~]# ping 10.0.0.254
#测试ping宿主机
[root@c1 ~]# ping 192.168.1.64
#测试ping外网
[root@c1 ~]# ping www.baidu.com

查询容器运行情况

[root@node-64 ~]# lxc-top
Container            CPU      CPU      CPU      BlkIO        Mem
Name                Used      Sys     User      Total       Used
c1                  0.13     0.08     0.03  784.00 KB    1.51 MB
TOTAL (1 )          0.13     0.08     0.03  784.00 KB    1.51 MB

四、lxc的图形管理界面

安装图形管理界面
#安装依赖
[root@node-64 ~]# yum install python-flask  git -y

#克隆下载
[root@node-64 ~]# git clone https://github.com/lxc-webpanel/LXC-Web-Panel.git

#启动
[root@node-64 ~]# ls
anaconda-ks.cfg  LXC-Web-Panel
[root@node-64 ~]# cd LXC-Web-Panel/
[root@node-64 LXC-Web-Panel]# python lwp.py
 * Running on http://0.0.0.0:5000/  #启动端口
LXC Web登录
LXC Web管理页面
参考链接:https://www.cnblogs.com/wang_yb/p/3923040.html
https://baike.baidu.com/item/lxc/6014808
上一篇下一篇

猜你喜欢

热点阅读