在ubuntu系统中使用lxc容器的教程 【百科全说】-今日足球竞猜

腾讯视频/爱奇艺/优酷/外卖 充值4折起

使用“容器”来保证主机环境的安全性,这个概念早在十年前就已经存在(例如 freebsd 的 jail 虚拟化技术),但是直到最近,随着部署云架构需求越来越多,像 lxc 和 docker 这种 linux 下的容器才成为被关注的焦点。当然,由于主流厂商(云服务商如亚马逊主推 aws,微软主推 azure;发行版如红帽、ubuntu等)组成的强大靠山,docker 已经被放在媒体的聚光灯下面,其实,docker 里面所谓的“容器”技术是由 lxc 提供的。

你只是一个普通的 linux 用户,那 docker/lxc 能为你带来什么好处呢?容器可以将你的应用在不同的 linux 发行版之间迁移。想像一下这个场景:你正在用的发行版是 debian,你喜欢它的稳定性,同时你又想玩一款最新的 ubuntu 游戏,你不需要在电脑上装双系统然后重启进入 ubuntu,也不需要在 debian 上跑一个耗资源的 ubuntu 虚拟机,你只需要简单地生成一个 ubuntu 容器就够了。

抛开 docker 的好处不谈,让我们聊一下 lxc 容器的好处:我可以使用 libvirt 提供的接口来管理 lxc,这些接口和 docker 没有任何关系。如果你有使用基于 libvirt 库的管理工具(例如 virt-manager 和 virsh),你就可以使用它们来管理 lxc 容器。

在这篇教程中,我只介绍标准 lxc 容器管理工具的命令行操作,来教你如何在 ubuntu 下创建和管理 lxc 容器。

ubuntu 下安装 lxc

使用下面的命令安装 lxc 在用户态的工具:

代码如下:

$ sudo apt-get install lxc

然后检查当前内核是否支持 lxc。如果所有结果都是“enable”,说明内核支持:

代码如下:

$ lxc-checkconfig



安装完 lxc 工具后,就能看到 lxc 自动创建了一块桥接网卡(lxcbr0,可以在 /etc/lxc/default.conf 中设置)。



当你创建了 lxc 容器后,它的网口会自动链接到这个桥接网卡上,然后这个容器就能和外部世界通信了。

创建 lxc 容器

为了在指定环境下(比如 debian wheezy 64位)创建 lxc 容器,你需要一个相应的 lxc 模板。幸运的是 lxc 提供的工具集成了一整套现成的 lxc 模板,你可以在 /usr/share/lxc/templates 目录下找到它们。

代码如下:

$ ls /usr/share/lxc/templates



一个 lxc 模板实质上就是一个脚本,用于创建指定环境下的容器。当你创建 lxc 容器时,你需要用到它们。

比如你要新建 ubuntu 容器,使用下面的命令即可:

代码如下:

$ sudo lxc-create -n -t ubuntu



默认情况下,这个命令会创建一个最小的 ubuntu 环境,版本号与你的宿主机一致,我这边是“活泼的蝾螈”(版本号是13.10),64位。

当然你也可以创建任何你喜欢的版本,只要在命令里面加一个版本参数即可。举个例子,创建 ubuntu 14.10 的容器:

代码如下:

$ sudo lxc-create -n -t ubuntu -- --release utopic

这个命令就会下载安装指定环境下的软件包,创建新容器。整个过程需要几分钟时间,与容器的类型有关,所以,你可能需要耐心等待。



下载安装完所有软件包后,lxc 容器镜像就创建完成了,你可以看到默认的登录界面。容器被放到 /var/lib/lxc/<容器名> 这个目录下,容器的根文件系统放在 /var/lib/lxc/<容器名>/rootfs 目录下。

创建过程中下载的软件包保存在 /var/cache/lxc 目录下面,当你想另外建一个一样的容器时,可以省去很多下载时间。

用下面的命令看看主机上所有的 lxc 容器:

代码如下:

$ sudo lxc-ls --fancy

name state ipv4 ipv6 autostart

------------------------------------

test-lxc stopped - - no

使用下面的命令启动容器。参数“-d”将容器作为后台进程打开。如果没有指定这个参数,你可以在控制台界面上直接把容器的运行程序关闭(lctt译注:ctrl c组合键)。

代码如下:

$ sudo lxc-start -n -d

打开容器后,看看状态:

代码如下:

$ sudo lxc-ls --fancy

name state ipv4 ipv6 autostart

-----------------------------------------

lxc running 10.0.3.55 - no

容器状态是“运行中”,容器 ip 是10.0.3.55。

你也可以看到容器的网络接口(比如我这里是 vethj06sfl)自动与 lxc 内部网桥(lxcbr0)连上了:

代码如下:

$ brctl show lxcbr0



管理 lxc 容器

我们已经学习了怎么创建和启动 lxc 容器,现在来看看怎么玩一个正在运行着的容器。

第一步:打开容器控制台:

代码如下:

$ sudo lxc-console -n



使用“crtl a q”组合键退出控制台。

停止、删除容器:

代码如下:

$ sudo lxc-stop -n

$ sudo lxc-destroy -n

复制容器,用下面的命令:

代码如下:

$ sudo lxc-stop -n

$ sudo lxc-clone -o -n

常见问题

这个小节主要介绍你们在使用 lxc 过程中碰到过的问题。

创建 lxc 容器时遇到下面的错误:

代码如下:

$ sudo lxc-create -n test-lxc -t ubuntu

lxc-create: symbol lookup error: /usr/lib/x86_64-linux-gnu/liblxc.so.1: undefined symbol: cgmanager_get_pid_cgroup_abs_sync

错误的原因是你运行了最新的 lxc,但是它所依赖的 libcgmanager 版本较老,两者不兼容。升级下 libcmanager 即可解决问题:

代码如下:

$ sudo apt-get install libcgmanager0

06/02 20:07
你可能会有很多理由想要把一个应用.一个用户或者一个环境与你的 linux 系统隔离开来.不同的操作系统有不同的实现方式,而在 linux 中,一个典型的方式就是 chroot 环境. 在这份教程中,我会一步一步指导你怎么使用 chroot 命令去配置一个与真实系统分离出来的独立环境.这个功能主要可以用于测试项目,以下这些步骤都在 ubuntu 14.04 虚拟专用服务器(vps)上执行. 学会快速搭建一个简单的 chroot 环境是一项非常实用的技能,绝大多数系统管理员都能从中受益. chroo
03/26 18:12
简介vim是从vi发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和emacs并列成为类unix系统用户最喜欢的编辑器. 对于大多数用户来说,vim有着一个比较陡峭的学习曲线.这意味着开始学习的时候可能会进展缓慢,但是一旦掌握一些基本操作之后,能大幅度提高编辑效率.为了帮助学习,vim为初学者准备了vim教学.通常可以在unix系统命令行下输入"vimtutor"或者点击windows系统桌面上的vim教学图标进入.在vim用户手册中更
06/06 08:18
添加ppa从google linux repository(http://www.google.com/linuxrepositories/)下载安装key,或把下面的代码复制进终端,回车,需要管理员密码 复制代码 代码如下: wget -q -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - key安装好后,在终端输入: 复制代码 代码如下: sudo sh -c 'echo "deb
11/20 12:58
ubuntu系统不同于windows系统,windows字体我们都会删除,下面分享删除ubuntu系统中我们自己安装的自己的方法,需要的朋友可以进来学习一下,删除多余的字体可以减少占用电脑内存,提高系统运行速度。 首先打开文件管理,进入主文件夹。 按ctrl h显示隐藏文件。 进入 .local文件夹,打开share,fonts。 你自己安装的字体会在文件夹中有ttf文件,删除即可。 好了,这样就上出自己安装的字体了,谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更
12/04 21:34
随着互联网的普及,很多公司在各地的分公司都经常需要通过互联网共享或传输一些重要的数据或文件。在网络安全问题日益突出的今天,如何保证ubuntu系统的数据在传输过程中的安全性呢?本文为大家讲解在ubuntu系统中如何对文件进行加密传输。 本文介绍基于ubuntu desktop 9.10(i386),采用gnome集成桌面环境。并设定有两台安装了ubuntu 9.10桌面版系统的计算机host1和host2,都安装了openssh软件包且具有相同的用户账号(为叙述方便,用户名和密码相同)。  
04/15 14:25
ubuntu系统可用的flash播放器很多,这里我们介绍最为常用的两种flash播放软件,即官方的adobe flash player和开源的swfdec,助大家玩转flash视频。本文介绍基于ubuntu desktop 9.04。 一、用adobe flash player播放flash视频 因adobe flash player是非开放源代码软件,受adobe米乐足球竞猜m6的版权制约,大多数linux发行版默认并不提供flash相关软件包。因而在ubuntu系统中,要正常播放flash动画,须手动安装相应
04/09 11:13
ubuntu系统中安装使用tcpdump来统计http请求 安装 tcpdump的安装还是比较讨厌的... 1.网上下载获得libpcap和tcpdump http://www.tcpdump.org/ 2.安装c编译所需包: 代码如下: apt-get install build-essential 3.安装 libpcap的前置: 代码如下: apt-get install flex,apt-get install bison 4.安装libpcap. tcpdump的使用必须有这库. 代码
03/19 01:57
在ubuntu系统中,快捷键可以帮我们快速的打开某个窗口或进行某个操作,方便省时.但是有些快捷键却经常容易被误按到,就像alt快捷键,动不动就把搜索框给呼出来了,次数多了很多用户都觉得很烦恼,想要把这个快捷键关掉.下面小编就为大家带来ubuntu系统中关闭alt快捷键的方法.一起去看看吧! 其实很简单: 到system setting->keyboard->shortcuts->launchers 然后左键单击key to show the hud 然后按backspace 以上内容就是
01/23 07:49
自打2.4版本以后的linux内核中, 提供了一个非常优秀的防火墙工具。这个工具可以对出入服务的网络数据进行分割、过滤、转发等等细微的控制,进而实现诸如防火墙、nat等功能。 一般来说, 我们会使用名气比较的大iptables等程序对这个防火墙的规则进行管理。iptables可以灵活的定义防火墙规则, 功能非常强大。但是由此产生的副作用便是配置过于复杂。一向以简单易用著称ubuntu在它的发行版中,附带了一个相对iptables简单很多的防火墙配置工具:ufw。 ufw默认是没有启用的。也就是说