Linux Container

Linux Container,第1张

LXC是Linux Containers的缩写,是linux内核自带的容器化工具,用于进程隔离,namespace隔离,文件系统隔离。提供一种轻量的虚拟化解决方案。

本文的 *** 作基于的Ubuntu系统。

Ubuntu下直接安装

安装完成后查看配置情况

启动LXC container

配置桥接网络

TODO

查看一下当前可用的模板

利用可用的模板创建一个centos的容器

命令中

创建完成后,利用工具lxc-ls可以查看当前建立的container

新建立的container的文件系统保存在目录 /var/lib/lxc/<container>/rootfs 下面,同时还有一个配置文件config

从一个已经创建好的container克隆出一个新的来

查看克隆好的新的lxc container

修改config文件,通过添加一行配置修改cpu分配,例如分配了CPU 0给container

首先在container内部创建一个文件夹,比如说 /mnt/share

然后主机上也创建一个文件夹,比如说'/tmp/share'

这个时候主机上保存container文件系统的目录下面也会产生 /mnt/share 这个目录,找到这个目录的绝对路径

修改container的配置文件config, 添加一行

Docker不是lxc的一个替代方案。“lxc”是指linux内核(尤指命名空间以及Cgroup)的一个特性,它允许其他一些沙盒进程运行在一块相对独立的空间,并且能够方便的控制他们的资源调度。

而基于底层的内核特性的基础上,Docker在上层构建了一个更高层次的具备多个强大功能的工具集:

可移植的跨机器部署。Docker定义了一个将应用打包的规范,而它的所有依赖都被封装到了一个简单对象里,它可以被传输到任意一台能运行 Docker的机器,并且在这里启动Docker的实例之后,它能够确保承载应用的执行环境将会与之前所定义的完全一致。Lxc实现了进程级的沙盒封装, 它是可移植部署的一个重要前提,但是要想实现可移植部署,仅仅是这样可还不够。如果你发送给我一份安装到一个自定义LXC配置下的应用副本,那么几乎可以 肯定的是,它在我的机器上运行的结果不会跟你的完全一样,因为它绑定了你机器的一些特殊配置:网络,存储,日志,Linux发行版本等等。Docker为 这些机器的特定配置定义了一个抽象层,所以它使得这些相同的Docker容器能够一成不变的运行在多个不同的主机上,甚至带上各种不同的配置。

以应用为中心。相对于机器而言,Docker被用于优化应用的部署过程。这可以从它的API,UI,设计理念还有文档里得到体现。反之,lxc的辅助脚本专注在把容器作为一个轻量级的 机器 使用 —— 基本上就是一堆启动更快并且内存需求更小的服务器。我们认为容器技术的内容远远不止这些。

自动构建。Docker为开发人员引入了一个可以用来把他们的源代码自动打包到容器里的工具,并且他们能够对于应用的依赖,构建工具,打包服 务等有着完全的自主掌控能力。他们能够自由的使用make,maven,chef,puppet,salt,debian包,rpm包,源码包,或者任意 以上的结合,而无需关心机器本身的配置。

版本化。Docker引入了一个类似git的特性来完成一个容器的连续版本追踪,版本之间的差异diff,新的版本的提交,回滚等。历史记录 信息里也包含了容器的用户信息以及他是如何构建它的,因此生产环境的服务器你都有充足的手段去一步步的定位到最上游的开发人员。Docker也实现了一个 增量上传和下载功能,类似于git pull,所以更换到新版本的容器只需要传输增量部分就行。

组件的重用。任意容器都能用作“基础镜像”来创建更特定的组件。这可以手工完成也可以做成自动构建的一部分。例如,你可以准备一个理想的 python环境,并且把它用作10个不同的应用的基础镜像。你所定义的标准postgresql设置可以被将来你手上的所有项目重用。诸如此类。

共享。Docker 有权访问一个公共的注册中心( https://registry.hub.docker.com/ ) 而这里有数以千计的业界人士上传各种各样有价值的容器:任一从redis,couchdb,postgres到irc bouncers再到rails应用服务器,Hadoop甚至是多个发行版本的基础镜像。该注册中心也包含了一个官方的“标准库”,这里提供了一些由 Docker官方团队维护的实用容器。注册中心本身也是开源的,所以任何人都能部署他们自己的私有注册中心来存储和下发私有容器,例如用于内网服务器的部 署。

工具生态圈。Docker定义了一个API来自动化和个性化的创建和部署容器。也因此催生了众多的工具集成到Docker,为之提供一些扩展 特性。类PaaS的部署(Dokku,Deis,Flynn),多节点编排(maestro, salt, mesos, openstack nova),管理看板(docker-ui, openstack horizon, shipyard),配置管理(chef, puppet),持续集成(jenkins, strider, travis)等等。Docker正在迅速的建立以它本身为标准的基于容器的工具生态圈。

参考:第一次创建可能等待长达2小时!

HOWTO Use Linux Containers to set up virtual networks - Nsnam

How to install and setup LXC (Linux Container) on Fedora Linux 26 - nixCraft

Unknown configuration key "lxc.aa_profile" · Issue #4396 · lxc/lxd · GitHub

Ubuntu LXC_运维_tq08g2z的专栏-CSDN博客

容器与云|教你在 Ubuntu 上使用 LXC 容器

终端3:

终端2:加了sudo创建的都是特权容器,而非特权容器有更多限制。见: https://blog.csdn.net/tq08g2z/article/details/78741000

终端1:

登陆容器有三种方式:默认用户名和密码都是“ubuntu”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7241616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存