添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

隔离的环境拥有自己的系统文件,IP地址,主机名等等。

2.容器和虚拟化的区别:

kvm虚拟化: 需要硬件的支持,需要模拟硬件,可以运行不同的操作系统,启动时间分钟级(开机开启流程)。

linux开机启动流程:

  • bios开机硬件自检
  • 根据bios设置的优先启动项
  • 读取mbr引导:UEFI(GPT分区),包括mbr硬盘分区信息,内核的加载路径
  • 启动第一个进程init, systemed................
  • 容器虚拟化: 不需要硬件的支持。不需要模拟硬件,共用宿主机的内核,启动时间秒级(没有开机启动流程)

    容器的启动流程:

  • 共享宿主机的内核
  • 启动第一个进程init, systemed................
  • KVM与docker的对比,参考: https://www.qstack.com.cn/archives/148.html

    3.chroot,新建一个子系统

    linux容器下载地址: https://mirrors.tuna.tsinghua.edu.cn/lxc-images/images/ubuntu/trusty/amd64/default/20190801_07%3A42/ ,下载rootfs.tar.xz,解压到/opt/ubuntu/

    切换系统到ununtu: chroot /opt/ubuntu/

    查看环境变量:echo $PATH

    缺少两个目录:/bin和/sbin

    添加以上两个目录到PATH:export PATH=$PATH:/bin:/sbin

    4.linux容器(lxc):linux container(命名空间,隔离环境,cgroups资源限制)

    cgroups可以限制一个进程能够使用的资源,如cpu,内存,硬盘io

    需要使用epel源

    1).安装epel源:yum install epel-release.noarch -y

    以下内容:将aliyun的域名,劫持到本地的服务器192.168.14.200

    查看yum源:ls /etc/yum.repos.d/

    删除yum源: mv  /etc/yum.repos.d/  /etc/yum.repos.d.bak/

    echo '192.168.14.200 mirrors.aliyun.com'
    echo '192.168.14.200 mirrors.aliyun.com' >>/etc/hosts
    cat /etc/hosts

    下载repo文件:curl -o /etc/yum.repos.d/Centos-Base.repo http://192.168.14.200/repo/Centos-7.repo

    以下内容:将epel源,劫持到本地的服务器192.168.14.200

    culr -o /etc/yum.repos.d/epel.repo http://192.168.14.200/repo/epel-7.repo

    2).安装lxc

    yum install -y lxc-*
    yum install -y libcgroup*
    yum install -y bridge-utils.x86_64

    桥接网卡:

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    BOOTPROTO=none
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    BRIDGE=virbr0
    vim /etc/sysconfig/network-scripts/ifcfg-virbr0
    TYPE=Bridge
    BOOTPROTO=static
    NAME=virbr0
    DEVICE=virbr0
    ONBOOT=yes
    IPADDR=10.0.0.11
    NETMASK=255.255.255.0
    GATEWAY=10.0.0.254
    DNS1=233.5.5.5

    启动cgroup

    systemctl start cgconfig.service

    启动lxc

    systemctl start lxc.service

    创建lxc容器

    # lxc-create -t download -n my-container -- --server mirrors.tuna.tsinghua.edu.cn/lxc-images
    lxc-create -t download -n centos6 -- --server mirrors.tuna.tsinghua.edu.cn/lxc-images -d centos -r 6 -a amd64
    lxc-create -t centos -n test

    修改容器的密码:

    chroot /var/lib/lxc/test/rootfs passwd

    创建lxc容器:

    lxc-create -t centos -n test

    启动lxc容器:

    lxc-start -n test

    如果要后台启动,使用参数-d

    lxc-start -d -n test

    登出lxc容器:

    logout

    克隆lxc容器:

    lxc-clone -o test1 -n test2

    关闭容器:

    lxc-stop -n test

    使用lxc-attache连接主机

    lxc-attach -n test

    删除一个lxc容器

    [admin@localhost lxc]$ sudo lxc-destroy -n test