当前位置: 首页 > 科技观察

如何在Ubuntu上创建和管理LXC容器?_0

时间:2023-03-14 15:22:09 科技观察

尽管容器的概念在十多年前就已被引入以安全地管理共享主机环境(例如FreeBSDjails),但LXC或Docker等Linux直到最近才成为主流应用程序。虽然这几天Docker受到了很多媒体的关注,并得到了各大云服务提供商(如亚马逊AWS和微软Azure)和分发提供商(如RedHat和Ubuntu)的大力支持,但LXC实际上是针对其中的一个为Linux平台开发的早期容器技术。如果你是一个普通的Linux用户,Docker/LXC能带来什么样的好处?好吧,容器实际上是一种几乎可以立即在不同发行版之间切换的好方法。假设您当前的桌面系统是Debian,您需要Debian稳定性。同时,您想玩最新的Ubuntu游戏。然后,无需经历双引导进入Ubuntu分区的麻烦,也无需启动资源密集型Ubuntu虚拟机,只需立即启动Ubuntu容器,一切就绪。即使没有Docker的所有好处,我喜欢LXC容器的地方在于LXC可以由libvirt接口管理,而Docker则不是这样。如果您一直在使用基于libvirt的管理工具(例如virt-manager或virsh),则可以使用这些相同的工具来管理LXC容器。在本教程中,我重点介绍标准LXC容器工具的命令行用法,并演示如何在Ubuntu上从命令行创建和管理LXC容器。在Ubuntu上安装LXC要在Ubuntu上使用LXC,您需要安装LXC用户空间工具,如下所示。$sudoapt-getinstalllxc安装完成后,运行lxc-checkconifg工具查看当前Linux内核是否支持LXC。如果一切都已启用,则对LXC的内核支持已准备就绪。$lxc-checkconfig安装好LXC工具后,你会发现已经自动创建了LXC的默认桥接接口(lxcbr0)(配置在/etc/lxc/default.conf中)。创建LXC容器后,窗口的接口会自动连接到桥上,使容器可以与外界进行通信。创建一个LXC容器为了能够为特定的目标环境(例如DebianWheezy64位)创建一个LXC容器,您需要一个相应的LXC模板。幸运的是,Ubuntu上的LXC用户空间工具带有一组预先准备好的LXC模板。您可以在/usr/share/lxc/templates目录中找到可用的LXC模板。$ls/usr/share/lxc/templatesLXC模板实际上只是一个脚本,用于为特定的Linux环境创建容器。当您创建LXC容器时,您需要使用这些模板之一。例如,要创建一个Ubuntu容器,请使用以下命令行:$sudolxc-create-n-tubuntu默认情况下,它将创建一个与本地主机具有相同版本号和体系结构的最小Ubuntu安装,在这种情况下这是SaucySalamander(13.10)64位。如果愿意,您可以创建任何版本的Ubuntu容器,只需传递release参数即可。例如,要创建一个Ubuntu14.10容器:$sudolxc-create-n-tubuntu----releaseutopic它将下载并验证目标容器环境所需的所有包。整个过程可能需要几分钟或更长时间,具体取决于容器类型。所以请耐心等待。经过一系列的包下载和验证,最终创建了LXC容器镜像,您将看到可以使用的默认登录详细信息。容器存储在/var/lib/lxc/,根文件系统在/var/lib/lxc//rootfs。在创建LXC期间下载的所有包都缓存在/var/cache/lxc中,因此使用相同的LXC模板创建其他容器不需要时间。现在让我们看一下主机上的LXC容器列表:$sudolxc-ls--fancyNAMESTATEIPV4IPV6AUTOSTART-------------------------------------test-lxcSTOPPED--否要启动容器,请使用以下命令。“-d”选项将容器作为守护进程启动。如果没有此选项,您将在启动容器后直接连接到控制台。$sudolxc-start-n-d启动容器后,您可能希望再次检查容器状态:$sudolxc-ls–fancyNAMESTATEIPV4IPV6AUTOSTART----------------------------------------lxcRUNNING10.0.3.55-NO你会看到容器处于“RUNNING”状态,并被分配了一个IP地址。您还可以验证容器的接口(比如vethJ06SFL)是否自动连接到LXC的内部桥(lxcbr0),如下所示。$brctlshowlxcbr0管理LXC容器现在我们知道如何创建和启动LXC容器,让我们看看如何处理正在运行的容器。首先,我们要访问容器的控制台。为此,请键入以下命令:$sudolxc-console-n键入退出控制台。要停止并销毁容器:$sudolxc-stop-n$sudolxc-destroy-n要将现有容器克隆到另一个容器中,请使用以下命令:$sudolxc-stop-n$sudolxc-clone-o-n故障排除如果您在LXC中遇到错误,这里有几个故障排除的要点。1.无法创建LXC容器,出现如下错误。$sudolxc-create-ntest-lxc-tubuntulxc-create:symbollookuperror:/usr/lib/x86_64-linux-gnu/liblxc.so.1:undefinedsymbol:cgmanager_get_pid_cgroup_abs_sync这意味着你运行***LXC,但使用较旧的libcgmanager(libcg管理器)。要解决此问题,您需要更新libcg管理器。$sudoapt-getinstalllibcgmanager0英文:http://xmodulo.com/lxc-containers-ubuntu.html