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 阅读(1640) 评论(0) 编辑 收藏 举报