docker一:容器介绍与lxc容器

1.什么是容器:容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁。

隔离的环境拥有自己的系统文件,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

 

posted on 2019-08-04 12:52  myworldworld  阅读(1644)  评论(0编辑  收藏  举报

导航