精华内容
下载资源
问答
  • Proxmox 的LXC容器安装docker的方法,限制条件,只能unbuntu容器中安装,centos的容器测试不成功。
  • Docker系列02—LXCDocker的“前身” 本文收录容器技术学习系列文章总目录 一、LXC介绍 1、Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。 2、LXC为Linux Container...

    Docker系列02—LXC—Docker的“前身”

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

    一、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

    ② 网页登录

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

     

    展开全文
  • lxcdocker的区别

    2017-10-26 13:45:24
    而基于底层的内核特性的基础上,Docker在上层构建了一个更高层次的具备多个强大功能的工具集:可移植的跨机器部署。Docker定义了一个将应用打包的规范,而它的所有依赖都被封装到了一个简单对象里,它可

    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正在迅速的建立以它本身为标准的基于容器的工具生态圈。

    展开全文
  • 如何理解LXCDocker之间的主要区别 【编者的话】这篇翻译文章从两个部分来探讨LXCLXCDocker的容器托管,以及轻便的容器技术将取代虚拟技术的可能性。LXC有可能会改变我们如何运行和缩放应用程序。Dr.Rami ...

    如何理解LXC与Docker之间的主要区别

    【编者的话】这篇翻译文章从两个部分来探讨LXC,LXC和Docker的容器托管,以及轻便的容器技术将取代虚拟技术的可能性。LXC有可能会改变我们如何运行和缩放应用程序。Dr.Rami Rosen 做过一个很棒的演示文稿,是关于LXC的前世今生,其中还不乏有趣的观点和内容。

    两者的概述

    容器技术独立运行并且从主机系统上封装应用程序工作量。把容器想象成可以安装和运行应用程序的主机操作系统里面的操作系统,从实用目的来讲,它就像一个虚拟机。

    LXC项目给不同配置和用户空间应用提供最小的容器操作样本来管理容器生命周期, LXC项目的这个特性和Linux内核使模仿机制能够正常启用。

    便携性

    容器技术将应用从主机操作系统上解耦下来,摘录该程序并且使之在任意支持LXC的系统上都实现轻便化。低调的说法就是:非常好用。用户在这样一个原始和最小库的Linux操作系统上可以在容器里运行任何程序(就像是在容器里运行LAMP堆栈)。

    因为应用程序和工作量是相对独立的,所以用户可以运行多版本的语言,比如PHP,Python,Ruby,Apache,这些语言都可以共存,隐藏在容器里。实现云计算,就好比是这些例子和工作量都可以灵活的被移动到别的系统,复制,以及快速配置。

    难道虚拟技术就做不到吗?

    不不不,虚拟技术也可以做到,但是会有一定程度的性能损失,灵活度也会下降。容器技术不是模仿硬件层次,而是在Linux内核里使用cgroup和namespaces来打造轻便的、将近裸机速度的虚拟技术操作系统环境。因为不是虚拟化存储,所以容器技术不会管底层存储或者文件系统,而是你放哪里,它操作哪里。

    这从根本上改变了我们如何虚拟化工作负载和应用程序,因为容器速度比硬件虚拟化技术更快,更加便捷,弹性扩容的更加高效,只是它的工作负载要求操作系统,而不是Linux或特定的Linux内核版本。

    那VMWare就这样玩完了?

    没那么快!虚拟技术相对成熟,又有广泛的工具,还有生态系统来支持它在不同环境下的配置。至于工作负载,它要求非Linux操作系统,或者只能使用特定的核心虚拟化技术。

    LXC

    LXC起源于cgroup和namespaces在Linux内核方面的发展,它支持轻便的虚拟技术操作系统环境(容器技术),Daniel Lezcano和Serge Hallyn做了一些它的早期工作,这个可以追溯到2009年在IBM的时候。

    LXC系统提供工具来管理容器,先进的网络和存储支持,还有最小容器操作系统模板的广泛选择。它目前由一个两人的团队领导:来自Ubuntu的Stephane Graber和Serge Hallyn。LXC是由Ubuntu支持的。

    如何区分他们

    生产Docker的目的是为了尽可能减少容器中运营的程序,减少到只运营单个程序,并且通过Docker来管理这个程序。

    有了Docker,可以从底层应用程序通过Docker来配置,网络,存储和编排。

    LXC用正常操作系统环境回避那个问题,并且因此可以快速兼容所有应用程序和工具,以及任意管理和编制层次,来替代虚拟机。

    除此之外,Docker使用层次,禁用存储持久性。LXC支持AUFS层次和覆盖,对COW克隆和用brtfs、ZFS、LVM Thin快照广泛支持,并且将选择留给用户。LXC容器技术里的分散存储是绑定安装的,来为用户达到主机或者另一个容器。

    Docker和LXC都设置了一个默认的NAT网络。另外,Docker设置一个端口转发到主机上,就会有一个-p标记,比如“-p80:80”就是80从主机转发到容器。有NAT,本地主机就可以直接通过IP访问容器,外部服务需要的时候可以通过IPtable规则来简单完成,当外部服务被消耗的时候,只需要端口转发就可以。至于为什么需要这么做,原因目前还不是很明确。

    要把事项复合起来,Docker只给了很少的IP和主机文件控制权,所以不能给容器设置静态IP,这对于IP的分配任务来说有点让人疑惑。我们需要使用“--Links”标记来连接容器,这个容器中要在被连接的容器中加一个入口在/etc/主机上。

    有了LXC,分配静态IP,动态IP,使用多网络设备就简单多了,可以使用/etc/hosts文件,基本上使用Linux网络全栈是没有限制的。您希望在主机上连接容器吗?用户使用GRE,L2TPV3或者VXLAN来快速设置层次,或者是任意的在使用的网络技术。

    LXC容器技术可以无缝运行虚拟机运行的一切。

    Docker

    Docker是dotCloud也就是现在的Docker公司在2013年3月发布的,一开始是基于LXC项目来创建单个应用程序容器。Docker现在已经开发了他们自己的直接使用核心namespaces和cgroup的工具:libcontainer。

    分层容器

    Docker最开始是基于LXC对Aufs的支持来建立分层容器,因为Aufs可能无法被合并到核心中,所以现在对Brtfs、设备映射和覆盖也添加支持,
    Docker容器技术是由基底镜像构成,当提交变成Docker镜像的时候会再加上一个分层面板。当运行一个镜像的时候,它的复本就作为容器被启动了,在提交之前,它的任何数据都只是暂时的。每一个提交都是一个独立的镜像,所以可以从镜像开始。

    我们在《如何用LXC覆盖》里有一个指导说明,它给用户描述了分层结构是如何工作的。有了像Aufs或者覆盖(他们在实施上、性能上有区别,而且支持一定数量的低一点的层次)这样的文件系统的联合,较低一点的层次是只读的,而较高一点的层次是在运行的时候是可读可写的。在容器内容中通常是基底操作系统,但是也不是很必要,而上层的图层面板则是由你来修改。

    虽然图层面板的想法听起来很不错,但是分层文件系统在技术上仍然是不成熟的,在使用图层面板的时候,还有有一个固有的复杂性和性能的损失。《陷入图层面板》是一个真实的冒险实例,大家不妨看看。

    单个应用程序容器

    Docker将容器技术限制到只能运行单个进程。Docker的底层镜像操作系统模版不是为运行多个应用程序,进程设计,也不是为像init,cron,syslog,ssh等服务而设计。

    我们来看早期的东西,它介绍了日复一日的用户场景有一定的复杂性。因为目前的架构,应用程序和服务是为正常的多程序操作系统环境设计的,所以需要去寻找一种以Docker的方式来工作或使用工具来支持Docker。

    拿一个简单的应用程序举个例子,比如WordPress。你可能需要建立3个容器来互相消耗服务。PHP容器,Nginx容器和MySQL容器加上2个分别用来放MysqlDB和WordPress文件持久性数据的容器。然后通过适当的权限将WordPress文件安装成PHP-FPM和Nginx两种语言都可用,然后为了把东西弄得更加让人兴奋,找出一种能够让容器在本地网络上可以互相交流的方法,不需要对网络不定时的控制,也不需要Docker后台程序设置IP!但是我们还没有计算WordPress账户管理的cron和Email。哎!

    为了在Docker里运行多个程序,你需要shell 脚本,或者是一个分开的程序管理,比如runit或者管理器。但是Docker生态系统会将之视为“反模式“,而且Docker的整个架构是建立在运行单个程序的容器上的。

    代码库

    Docker为用户提供公共或者个人push和pull镜像的数据库。这个跟Flockport app Store为用户使用容器做好准备有点相似。这样做,对用户来说,分享和分布应用程序就很简单了。

    Dockerfile

    Dockerfile是一个告诉Docker如何从镜像用特定的应用程序来创建容器的脚本。跟使用特定的安装好的应用程序通过bash脚本来创建一个LXC容器相似。

    跟LXC拉开距离

    LXC的特点需要通过Docker团队来重载实现,使之在Docker中可用,比如LXC现在支持让非根用户创建和配置容器的未经授权容器,LXC现在还致力于实时迁移和多主机管理。这些对容器来说都是很大的进步,也为更好的安全性,多租户工作量以及虚拟平价铺平了道路。
    Docker还不支持这些。随着最近的libcontainer声明,推测两者间的差距还将增大。

    运行容器的方法没有对错之分,容器怎么用主要取决于用户,docker方法是独特的,而且还将在每个阶段自定义途径成为必须途径,并以此来找到Docker的方法从安装和运行应用程序来完成任务,完成弹性扩容。

    前景

    虚拟技术通过操作系统和应用程序被冻结在一个状态,使云计算成为可能,并将之转化为可以从硬件和操作系统上轻易转移。操作系统添加了很多:速度,灵活性以及可移动性,扩大了潜在价值。

    Docker擅长用dockerfile和提交将容器和覆盖文件系统包装到一个友好的开发者模型中。只有当你在一台单独的笔记本上操作的时候,像托管,监视,存储和网络这样的弹性扩容问题才会让这个模型复杂脆弱。

    另一方面,操作系统容器在操作系统性能上跟虚拟机的相似,这使得运用目前的工具,来集成到正常和分布式系统更加简单,不需要开发任何单独的工具。

    Docker公司受到风投支持,积极投入市场。众多用户在Docker的内容中听说到容器技术,但是并不清楚操作系统容器技术以及自己所熟悉使用的。可以看到,用户单纯希望运行容器,就好像运行一个轻量级的虚拟机一样,他们拼命的想做到运用单个应用程序的容器技术,分层结构和持久存储。

    如果将工作量从虚拟机转移需要额外的工程工作量,那么很多大规模用户和企业根本不会考虑,而且转移之后,将跟他们其他基础设施的网络,存储和托管都不兼容。

    LXC就是这样获得承认的,不是固执己见,它有容器技术所有平行计算的优点——从虚拟机无缝过渡到LXC,而不需要架构师重新架构,这真是一个不可思议的价值主张。

    原文链接 Understanding the Key Difference between LXC and Docker

    翻译:Caicloud 才云科技

    展开全文
  • LXCDocker的主要区别

    2017-09-09 14:33:21
    DockerLXC

    两者的概述

    容器技术独立运行并且从主机系统上封装应用程序工作量。把容器想象成可以安装和运行应用程序的主机操作系统里面的操作系统,从实用目的来讲,它就像一个虚拟机。

    LXC项目给不同配置和用户空间应用提供最小的容器操作样本来管理容器生命周期, LXC项目的这个特性和Linux内核使模仿机制能够正常启用。


    便携性

    容器技术将应用从主机操作系统上解耦下来,摘录该程序并且使之在任意支持LXC的系统上都实现轻便化。低调的说法就是:非常好用。用户在这样一个原始和最小库的Linux操作系统上可以在容器里运行任何程序(就像是在容器里运行LAMP堆栈)。

    因为应用程序和工作量是相对独立的,所以用户可以运行多版本的语言,比如PHPPythonRubyApache,这些语言都可以共存,隐藏在容器里。实现云计算,就好比是这些例子和工作量都可以灵活的被移动到别的系统,复制,以及快速配置。


    难道虚拟技术就做不到吗?

    不不不,虚拟技术也可以做到,但是会有一定程度的性能损失,灵活度也会下降。容器技术不是模仿硬件层次,而是在Linux内核里使用cgroupnamespaces来打造轻便的、将近裸机速度的虚拟技术操作系统环境。因为不是虚拟化存储,所以容器技术不会管底层存储或者文件系统,而是你放哪里,它操作哪里。

    这从根本上改变了我们如何虚拟化工作负载和应用程序,因为容器速度比硬件虚拟化技术更快,更加便捷,弹性扩容的更加高效,只是它的工作负载要求操作系统,而不是Linux或特定的Linux内核版本。


    VMWare就这样玩完了?

    没那么快!虚拟技术相对成熟,又有广泛的工具,还有生态系统来支持它在不同环境下的配置。至于工作负载,它要求非Linux操作系统,或者只能使用特定的核心虚拟化技术。


    LXC

    LXC起源于cgroupnamespacesLinux内核方面的发展,它支持轻便的虚拟技术操作系统环境(容器技术),Daniel LezcanoSerge Hallyn做了一些它的早期工作,这个可以追溯到2009年在IBM的时候。LXC系统提供工具来管理容器,先进的网络和存储支持,还有最小容器操作系统模板的广泛选择。它目前由一个两人的团队领导:来自UbuntuStephane GraberSergeHallynLXC是由Ubuntu支持的。


    如何区分他们

    生产Docker的目的是为了尽可能减少容器中运营的程序,减少到只运营单个程序,并且通过Docker来管理这个程序。有了Docker,可以从底层应用程序通过Docker来配置,网络,存储和编排。LXC用正常操作系统环境回避那个问题,并且因此可以快速兼容所有应用程序和工具,以及任意管理和编制层次,来替代虚拟机。除此之外,Docker使用层次,禁用存储持久性。LXC支持AUFS层次和覆盖,对COW克隆和用brtfsZFSLVM Thin快照广泛支持,并且将选择留给用户。LXC容器技术里的分散存储是绑定安装的,来为用户达到主机或者另一个容器。DockerLXC都设置了一个默认的NAT网络。另外,Docker设置一个端口转发到主机上,就会有一个-p标记,比如p80:80”就是80从主机转发到容器。有NAT,本地主机就可以直接通过IP访问容器,外部服务需要的时候可以通过IPtable规则来简单完成,当外部服务被消耗的时候,只需要端口转发就可以。至于为什么需要这么做,原因目前还不是很明确。要把事项复合起来,Docker只给了很少的IP和主机文件控制权,所以不能给容器设置静态IP,这对于IP的分配任务来说有点让人疑惑。我们需要使用--Links”标记来连接容器,这个容器中要在被连接的容器中加一个入口在/etc/主机上。有了LXC,分配静态IP,动态IP,使用多网络设备就简单多了,可以使用/etchosts文件,基本上使用Linux网络全栈是没有限制的。您希望在主机上连接容器吗?用户使用GREL2TPV3或者VXLAN来快速设置层次,或者是任意的在使用的网络技术。LXC容器技术可以无缝运行虚拟机运行的一切。


    Docker

    Dockerdotcloud也就是现在的Docker公司在20133月发布的,一开始是基于LXC项目来创建单个应用程序容器。Docker现在已经开发了他们自己的直接使用核心namespacescgroup的工具:lib container


    分层容器

    Docker最开始是基于LXCAufs的支持来建立分层容器,因为Aufs可能无法被合并到核心中,所以现在对Brtfs、设备映射和覆盖也添加支持,Docker容器技术是由基底镜像构成,当提交变成Docker镜像的时候会再加上一个分层面板。当运行一个镜像的时候,它的复本就作为容器被启动了,在提交之前,它的任何数据都只是暂时的。每一个提交都是一个独立的镜像,所以可以从镜像开始。我们在《如何用LXC覆盖》里有一个指导说明,它给用户描述了分层结构是如何工作的。有了像Aufs或者覆盖(他们在实施上、性能上有区别,而且支持一定数量的低一点的层次)这样的文件系统的联合,较低一点的层次是只读的,而较高一点的层次是在运行的时候是可读可写的。在容器内容中通常是基底操作系统,但是也不是很必要,而上层的图层面板则是由你来修改。虽然图层面板的想法听起来很不错,但是分层文件系统在技术上仍然是不成熟的,在使用图层面板的时候,还有有一个固有的复杂性和性能的损失。《陷入图层面板》是一个真实的冒险实例,大家不妨看看。

    单个应用程序容器

    Docker将容器技术限制到只能运行单个进程。Docker的底层镜像操作系统模版不是为运行多个应用程序,进程设计,也不是为像initcronsyslogssh等服务而设计。我们来看早期的东西,它介绍了日复一日的用户场景有一定的复杂性。因为目前的架构,应用程序和服务是为正常的多程序操作系统环境设计的,所以需要去寻找一种以Docker的方式来工作或使用工具来支持Docker。拿一个简单的应用程序举个例子,比如WordPress。你可能需要建立3个容器来互相消耗服务。PHP容器,Nginx容器和MySQL容器加上2个分别用来放MysqlDBWordPress文件持久性数据的容器。然后通过适当的权限将WordPress文件安装成PHPFPMNginx两种语言都可用,然后为了把东西弄得更加让人兴奋,找出一种能够让容器在本地网络上可以互相交流的方法,不需要对网络不定时的控制,也不需要Docker后台程序设置IP!但是我们还没有计算WordPress账户管理的cronEmail。哎!为了在Docker里运行多个程序,你需要shell 脚本,或者是一个分开的程序管理,比如runit或者管理器。但是Docker生态系统会将之视为反模式,而且Docker的整个架构是建立在运行单个程序的容器上的。


    代码库

    Docker为用户提供公共或者个人pushpull镜像的数据库。这个跟Flockportapp Store为用户使用容器做好准备有点相似。这样做,对用户来说,分享和分布应用程序就很简单了。


    Dockerfile

    Dockerfile是一个告诉Docker如何从镜像用特定的应用程序来创建容器的脚本。跟使用特定的安装好的应用程序通过bash脚本来创建一个LXC容器相似。


    LXC拉开距离

    LXC的特点需要通过Docker团队来重载实现,使之在Docker中可用,比如LXC现在支持让非根用户创建和配置容器的未经授权容器,LXC现在还致力于实时迁移和多主机管理。这些对容器来说都是很大的进步,也为更好的安全性,多租户工作量以及虚拟平价铺平了道路。Docker还不支持这些。随运行容器的方法没有对错之分,容器怎么用主要取决于用户,docker方法是独特的,而且还将在每个阶段自定义途径成为必须途径,并以此来找到Docker的方法从安装和运行应用程序来完成任务,完成弹性扩容。


    前景

    虚拟技术通过操作系统和应用程序被冻结在一个状态,使云计算成为可能,并将之转化为可以从硬件和操作系统上轻易转移。操作系统添加了很多:速度,灵活性以及可移动性,扩大了潜在价值。Docker擅长用dockerfile和提交将容器和覆盖文件系统包装到一个友好的开发者模型中。只有当你在一台单独的笔记本上操作的时候,像托管,监视,存储和网络这样的弹性扩容问题才会让这个模型复杂脆弱。另一方面,操作系统容器在操作系统性能上跟虚拟机的相似,这使得运用目前的工具,来集成到正常和分布式系统更加简单,不需要开发任何单独的工具。Docker公司受到风投支持,积极投入市场。众多用户在Docker的内容中听说到容器技术,但是并不清楚操作系统容器技术以及自己所熟悉使用的。可以看到,用户单纯希望运行容器,就好像运行一个轻量级的虚拟机一样,他们拼命的想做到运用单个应用程序的容器技术,分层结构和持久存储。如果将工作量从虚拟机转移需要额外的工程工作量,那么很多大规模用户和企业根本不会考虑,而且转移之后,将跟他们其他基础设施的网络,存储和托管都不兼容。LXC就是这样获得承认的,不是固执己见,它有容器技术所有平行计算的优点——从虚拟机无缝过渡到LXC,而不需要架构师重新架构,这真是一个不可思议的价值主张。


    *文章来源于网络

    展开全文
  • LXCDocker之间的主要区别

    千次阅读 2018-03-23 09:51:57
    编者的话:这篇翻译文章从两个部分来探讨LXCLXCDocker的容器托管,以及轻便的容器技术将取代虚拟技术的可能性。LXC有可能会改变我们如何运行和缩放应用程序。Dr.Rami Rosen 做过一个很棒的演示文稿,是关于LXC的...
  • LXC vs Docker

    2015-01-13 19:06:00
  • lxc,docker

    2014-01-09 20:18:00
    Docker 是 dotCloud 最近几个月刚宣布的开源引擎,旨在提供一种应用程序的自动化部署解决方案,简单的说就是, Linux 系统上迅速创建一个容器(类似虚拟机)并容器上部署和运行应用程序,并通过配置文件可以轻松...
  • lxc-docker

    2013-06-23 15:54:00
    2019独角兽企业重金招聘Python工程师标准>>> http://www.docker.io/ 最近要好好研究下这货了。 转载于:https://my.oschina.net/charloco/blog/139995
  • 1 docker = lxc 都是用户态容器 2 docker-compose = juju 都是管理容器依赖关系的利器。将多个容器组合起来,起到整体作用。例如juju通常和maas组合,将openstack各个部件组装起来,maas负责基础架构(dhcp, dns...
  • LXCDocker的关系

    千次阅读 2013-11-06 15:36:38
    Docker is not a replacement for lxc. "lxc" refers to capabilities of the linux kernel (specifically namespaces and control groups) which allow sandboxing processes from one another, and controlling th
  • Michael Neale是CloudBees的创始人之一,同时是云架构师。CloudBees提供了一个加快网络和移动应用开发、部署的交付平台...Michael Neale不仅拥有云计算、JVM、Docker等技术,同时积极参与公司的团队合作和项目管理等。
  • 阿卡多克 简单 GUI 版本 1e^-3
  • 基于容器技术(lxcdocker,cells)的Android系统 细胞---容器基础代码 cellsservice ---容器启动,切换,停止,迁移等功能基础服务 交换系统---启动,切换,迁移APP 备注:cells-android10仓库,有完整源码
  • 保存修改的文件并退出 二、 Lxc常用命令 virsh常用命令: 查看容器list:virsh -c lxc:/// list --all 销毁容器:virsh -c lxc:/// destroy file-server (后面跟容器名称) 启动容器:virsh -c lxc:/// start file...
  • 基于lxcdocker容器的disk-io监控方式

    千次阅读 2016-11-10 19:13:22
    以一台测试机上的容器d-mcl-30_struc_test-n-2为例,容器id为373200daed7b,通过docker inspect可以看到如下信息: 图中高亮出来的部分是我们从宿主机映射到容器内的一个路径,下面我们来看这个路径对应的设备 ...
  • https://www.davidokwii.com/linux-virtualization-and-containers-virtualbox-kvm-xen-lxc-and-docker/ 由于需要不增加计算成本的情况下设置隔离的应用程序和服务器环境,虚拟化变得非常流行。 虚拟机和管理程序...
  • 安装一个docker,然后自己用命令行启动另外一个docker下面是一个启动命令:nohupdockerdaemon--selinux-enabled=false--log-driver=journald--storage-driver=overlay\-Hunix:///var/run/docker-bootstrap.sock-p/...
  • 很有兴趣哟。 有人说会重构互联基质,可能言重。 但,无疑未来几年内,DOCKER和COREOS这样的更新布置模式会流行。
  • 首先设置 1、取消勾选无特权的容器,签名选择-嵌套。...3、安装,然后启动就行了,如果有问题那只能输入这个 看日志: journalctl -xe | grep docker systemctl stutas docker systemctl restart
  • DockerDocker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管Github上,基于Go语言并遵从Apache2.0协议开源。 Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。 Docker将...
  • Proxmox 的 LXC上跑 Docker

    千次阅读 2020-05-13 15:06:24
    Proxmox VE 6.1 基于 LXC 容器环境运行 Docker,配置步骤: 1. LXC 容器不要开启特权模式,否则登陆可能会出现问题(测试时一直登陆失败);...保存配置后,重启 LXC 容器化虚拟机,就能内部安装和使用
  • Linux安装Docker

    2016-09-07 19:52:40
    以下内容整理自《Docker开发实践》http://www.ituring.com.cn/book/1631Ubuntu 16.04安装Docker 直接从软件仓库安装Docker$ sudo apt install docker.io或者安装官方最新版Docker添加apt的https支持$ sudo apt ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,998
精华内容 4,399
关键字:

在lxc安装docker