本文收录在容器技术学习系列文章总目录

一、LXC介绍

1、Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。

2、LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于:

(1)与宿主机使用同一个内核,性能损耗小;

(2)不需要指令级模拟;

(3)不需要即时(Just-in-time)编译;

(4)容器可以在CPU核心的本地运行指令,不需要任何专门的解释机制;

(5)避免了准虚拟化和系统调用替换中的复杂性;

(6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。

总结:Linux Container是一种轻量级的虚拟化的手段。

3、Linux Container提供了在单一可控主机节点上支持多个相互隔离的server container同时执行的机制。Linux Container有点像chroot,提供了一个拥有自己进程和网络空间的虚拟环境,但又有别于虚拟机,因为lxc是一种操作系统层次上的资源的虚拟化。

4、LXC与docker的关系

(1)Docker并不是LXC的替代品,Docker的底层就是使用了LXC来实现的。LXC将Linux进程沙盒化,使得进程之间相互隔离,并且能够控制各进程的资源分配。
(2)在LXC的基础之上,Docker提供了一系列更强的功能。

二、安装使用lxc

1、简单操作命令

lxc-checkconfig:

  检查系统环境是否满足容器使用要求;

lxc-create:创建lxc容器;

  lxc-create -n NAME -t TEMPLATE_NAME

lxc-start:启动容器;

  lxc-start -n NAME -d

lxc-stop:停止容器;(停止命令很慢)

  lxc-stop -n NAME -d

lxc-info:查看容器相关的信息;

  lxc-info -n NAME

lxc-destory:删除处于停机状态的容器;

lxc-snapshot:创建和恢复快照;

2、安装

(1)安装lxc 和lxc 自带的模板包

[root@centos7-1 ~]# yum -y install lxc lxc-templates

(2)检测环境

[root@centos7-1 ~]# lxc-checkconfig

(3)创建名为c1 的容器

[root@centos7-1 ~]# lxc-create -n c1 -t /usr/share/lxc/templates/lxc-centos

(4)安装完以后,会显示 在哪个目录下,密码存放在哪,和修改密码的命令

[root@centos7-1 ~]# cat /var/lib/lxc/c1/tmp_root_pass 查询密码

[root@centos7-1 ~]# chroot /var/lib/lxc/c1/rootfs passwd 修改密码

3、开启一台lxc 容器

(1)尝试开启

[root@centos7-1 ~]# lxc-start -n c1 会报错,没有virbr0 网桥

(2)创建网桥

① 下包

[root@centos7-1 ~]# yum install bridge-utils -y

② 查看网桥信息

[root@centos7-1 ~]# brctl show

③ 创建virbr0 网桥

[root@centos7-1 ~]# brctl addbr virbr0

④ 查看网桥创建成功

[root@centos7-1 ~]# ip a |grep virbr0

⑤ 激活网桥

[root@centos7-1 ~]# ip link set dev virbr0 up

[root@centos7-1 ~]# ip a 查询是否激活

⑥ 配置网桥地址

[root@centos7-1 ~]# ip addr add 10.1.0.1/24 dev virbr0

(3)再次登录

① 登录

[root@centos7-1 ~]# lxc-start -n c1 输入用户密码登录

② 添加ip 地址10.1.0.2

[root@c1 ~]# ip addr add 10.1.0.2/24 dev eth0

③ 测试与宿主机已经连通

[root@c1 ~]# ping 10.1.0.1

4、开启第2台容器

① 创建c2

[root@centos7-1 ~]# lxc-create -n c2 -t /usr/share/lxc/templates/lxc-centos

② 改密码

[root@centos7-1 ~]# chroot /var/lib/lxc/c2/rootfs passwd

③ 登录

[root@centos7-1 ~]# lxc-start -n c2

④ 添加ip 地址10.1.0.3

[root@c2 ~]# ip addr add 10.1.0.3/24 dev eth0

⑤ 测试与宿主机和另一台容器c1 的连通

[root@c2 ~]# ping 10.1.0.1

[root@c2 ~]# ping 10.1.0.2

⑥ 在宿主机上,查询容器状况

[root@centos7-1 ~]# lxc-top

5、使容器连通外网

(1)在宿主机 配置 NAT规则

① 打开核心转发

[root@centos7-1 ~]# sysctl -w net.ipv4.ip_forward=1

② 做NAT 规则

[root@centos7-1 ~]# iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -j SNAT --to-source 192.168.10.103

(2)在两个容器内添加网关

[root@c1 ~]# ip route add default via 10.1.0.1 添加网关

[root@c1 ~]# ip route sh 查询网关

[root@c1 ~]# ping www.baidu.com 测试网关是否生效

6、LXC 的web管理页面

(1)下载git 项目

[root@centos7-1 ~]# git clone https://github.com/lxc-webpanel/LXC-Web-Panel.git

(2)安装python-flask,因为该项目是Python开发

(a)下载安装pip

① 准备安装pip 环境

[root@centos7-1 ~]# wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

[root@centos7-1 ~]# sh setuptools-0.6c11-py2.7.egg

② 官网下载pip,https://pypi.org/project/pip/#files

③ 安装

[root@centos7-1 ~]# tar xvf pip-10.0.1.tar.gz 解包

[root@centos7-1 ~]# cd pip-10.0.1/

[root@centos7-1 pip-10.0.1]# python setup.py install

(b)使用pip安装flask

[root@centos7-1 ~]# pip install python-flask

(3)开启lxc web管理页面的服务

① 开启

[root@centos7-1 ~]# cd LXC-Web-Panel/

[root@centos7-1 LXC-Web-Panel]# python lwp.py

② 网页登录

③ 网页功能:一些容器的控制;开启,关闭,创建/克隆/重启容器,调节容器资源限制... ...

Docker系列02—LXC---Docker的“前身”的更多相关文章

  1. docker系列四之docker镜像与容器的常用命令

    docker镜像与容器的常用命令 一.概述   docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...

  2. Docker系列02: 容器生命周期管理 镜像&容器

    A) Docker信息1. 查看docker运行状态 systemctl status docker docker.service - Docker Application Container Eng ...

  3. Docker系列二:Docker的基本结构

    Docker的基本结构 Docker 的三大基础组件 Docker有三个重要的概念:仓库 , 镜像 和 容器 ,它们是Docker的三大基出组件 Docker的组织结构 Docker处于操作系统和虚拟 ...

  4. 8天入门docker系列 —— 第一天 docker出现前的困惑和简单介绍

    docker出来也有很多年了,但用到的公司其实并不是很多,docker对传统开发是一个革命性的,几乎颠覆了之前我们传统的开发方法和部署模式,而大多 公司保守起见或不到万不得已基本上不会去变更现有模式. ...

  5. Docker系列(七):Docker图形化管理和监控

    Docker管理工具之官方三剑客 Docker Machine是什么鬼 从前 现在 你需要登录主机,按照主机及操作系统特有的安装以及配置步骤安装Docker,使其 能运行Docker容器. Docke ...

  6. Docker系列(一):Docker简单介绍

    Docker简介: 多语言和框架:支持多语言和框架以及语言框架的扩展机制 多服务:开放的核心服务以及服务的扩展机制 多云和多IaaS技术:支持多种IaaS技术和多云的部署,包括公有云和私有云 Dock ...

  7. Docker系列一:Docker基本概念及指令介绍

    1. Docker是什么? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用 ...

  8. Docker系列一:Docker的介绍和安装

    Docker介绍 Docker是指容器化技术,用于支持创建和实验Linux Container.借助Docker,你可以将容器当做重量轻.模块化的虚拟机来使用,同时,你还将获得高度的灵活性,从而实现对 ...

  9. Docker系列(五):Docker网络机制(上)

    Linux路由机制打通网络 路由机制是效率最好的 docker128上修改Docker0的网络地址,与docker130不冲突 vi /usr/lib/systemd/system/docker.se ...

随机推荐

  1. RSP小组——团队冲刺博客五

    RSP小组--团队冲刺博客五 冲刺日期:2018年12月17日 前言 周末的结束,我们并没有完全的休息,对于这个项目,以我们的实力还是需要花费更多的时间. 各成员今日(12.17)完成的任务 马瑞蕃由 ...

  2. IDEA使用Git传放项目

    使用Git下载项目到IDEA工具上开发 1. 下载Git 软件工具 https://git-scm.com/ 2. 下载安装 3.打开IDEA 配置Git 4. 搜索Git 在登入 5.选择自己Git ...

  3. HTTP Status 500 - Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    今天整合ssm框架 时 遇到的问题 困扰我好长时间     原因就是  mapper文件 没有被加载进来 但是 为什么没有被加载进来呢  因为中间的配置文件出了一些问题 网上大多数说法是   在pom ...

  4. python elasticsearch 批量写入数据

    from elasticsearch import Elasticsearch from elasticsearch import helpers import pymysql import time ...

  5. mongodb远程数据库的连接以及备份导入导出数据

    环境win10; 运行cmd cd到目录mongodb的bin目录: 连接远程mongodb: 连接命令:mongo -u username -p pwd host:post/database(数据库 ...

  6. Ubuntu 16.04下sublime text3安装

    安装方法 在确保Ubuntu更新了国内镜像源的前提下,使用ppa安装: sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt- ...

  7. touchweb网站常见问题,手机网站注意问题

    一.h5网站input 设置为type=number的问题 h5网页input 的type设置为number一般会产生三个问题,一个问题是maxlength属性不好用了.另外一个是form提交的时候, ...

  8. Websocket实现即时通讯

    前言 关于我和WebSocket的缘:我从大二在计算机网络课上听老师讲过之后,第一次使用就到了毕业之后的第一份工作.直到最近换了工作,到了一家是含有IM社交聊天功能的app的时候,我觉得我现在可以谈谈 ...

  9. vue中实现动态切换不同的值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. SUSE12Sp3安装配置.net core 生产环境(1)-IP,DNS,网关,SSH,GIT

    1.新增用户 sudo useradd 用户名 sudo passwd 用户名 这个时候会提示你输入密码,输入两次密码即可 2.静态 IP 设置 1.设置 IP 地址 sudo vi /etc/sys ...