01 : docker - lxc安装,chroot *限制

在学习docker 之前,我们先简单了解一下chroot *限制,和lxc容器。

因为docker的本质使用了这两种技术:

1: chroot *限制

2: lxc容器

 

容器技术的发展过程:
1):chroot技术,新建一个子系统
参考资料:https://www.ibm.com/developerworks/cn/linux/l-cn-chroot/
chang root

2) : 使用chroot*限制SSH用户访问指定目录和使用指定命令

参考资料: https://linux.cn/article-8313-1.html

 

linux容器(lxc) linux container

里面用到的两种技术:

namespaces  网络命名空间 隔离环境

cgroups 资源限制)

 

下面我们安装一下lxc:

#安装epel源
wget -O 随便安装清华的或者阿里的都行(最好和base源保持一样属于同一家源)

##安装lxc
yum install lxc-* -y
yum install libcgroup* -y
yum install bridge-utils.x86_64 -y

##桥接网卡
[root@controller ~]# 
echo 'TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0' >/etc/sysconfig/network-scripts/ifcfg-eth0


[root@controller ~]# 
echo 'TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.6.128
NETMASK=255.255.255.0
GATEWAY=192.168.6.254
DNS1=223.5.5.5' >/etc/sysconfig/network-scripts/ifcfg-br0

重启网卡:
/etc/init.d/network restart 或者 systemctl restart network.service
查看网桥是否正常:brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c294f9218 no eth0

##修改lxc默认配置
vi /etc/lxc/default.conf
修改第2行为:lxc.network.link = br0

##启动cgroup
systemctl start cgconfig.service

##启动lxc
systemctl start lxc.service

##创建lxc容器
方法1:
lxc-create -t download -n centos6 -- --server mirrors.tuna.tsinghua.edu.cn/lxc-images -d centos -r 6 -a amd64
方法2:
lxc-create -t centos -n test (我这里使用这种方式创建的)

#####为lxc容器设置root密码:
[root@controller ~]# chroot /var/lib/lxc/test/rootfs passwd
Changing password for user root.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

##为容器指定ip和网关
vi /var/lib/lxc/test/config
lxc.network.name = eth0
lxc.network.ipv4 = 192.168.6.111/24
lxc.network.ipv4.gateway = 192.168.6.254

##启动容器
lxc-start -n test (Lxc-start -n test -d 后台启动)
systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
Detected virtualization lxc.
Detected architecture x86-64.

Welcome to CentOS Linux 7 (Core)!
test login:
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64

test login: root (输入root ,密码登录ip a 查看ip地址就是我们刚刚配置文件指定的111ip)
Password:


登录后就和平时的窗口一样,关机执行init 0 就可以关掉容器了。

 

上一篇:proxmox中 centos7 lxc 无法使用root登录


下一篇:linux – 没有chroot的LXC