在學習docker 以前,咱們先簡單瞭解一下chroot 監獄限制,和lxc容器。html
由於docker的本質使用了這兩種技術:linux
1: chroot 監獄限制docker
2: lxc容器centos
容器技術的發展過程:
1):chroot技術,新建一個子系統
參考資料:https://www.ibm.com/developerworks/cn/linux/l-cn-chroot/
chang root網絡
2) : 使用chroot監獄限制SSH用戶訪問指定目錄和使用指定命令學習
參考資料: https://linux.cn/article-8313-1.htmlspa
linux容器(lxc) linux container .net
裏面用到的兩種技術:rest
namespaces 網絡命名空間 隔離環境server
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 就能夠關掉容器了。