什么时容器
容器技术已经成为应用程序封装和交付的核心技术
容器技术的核心有以下几个内核技术组成
CGroups(Control Groups)-资源管理
NameSpace-进程隔离
SELinux安全
由于是在物理机上实施隔离,启动一个容器,可以像启动一个进程一样快速
信号隔离、网络隔离、主机名隔离
ps只能看见自己的进程
什么是Docker
Docker是完整的一套容器管理系统
Docker提供了一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术
Docker优点
相比于传统的虚拟化技术,容器更加简洁高效
传统虚拟机需要给每个VM安装操作系统
容器使用的共享公共库和程序
vm container
appa appb appc appa appb appc
bins/libs bins/libs bins/libs bins/libs bins/libs bins/libs
cuest os guest os guest os docker
hypervisor Host OS
infrastructure infrastructure
Docker的特点
容器的隔离性没有虚拟化强
共用Linux内核,安全性有先天缺陷
SELinux难以驾驭
监控容器和容器排错是挑战
部署Docker
安装软件
需要64位的操作系统
至少RHEL6.5以上的版本,强烈推荐RHEL7
关闭防火墙(不是必须)
安装Docker
软件包列表
docker-engine
docker-engine-selinux
1 docker 安装
#----------------------物理机--------------------------#
创建一台 4G 内存的虚拟机创建虚拟机硬盘
qemu-img create -b node.qcow2 -f qcow2 node6.img 20G
创建虚拟机配置文件
sed 's/demo/node6/' demo.xml >/etc/libvirt/qemu/node6.xml
定义虚拟机
virsh define /etc/libvirt/qemu/node6.xml
编辑虚拟机修改内存
virsh edit node6
<domain type='kvm'>
<name>node6</name>
<uuid>9dce25b7-ae23-4336-84ff-4d7d8a3d1726</uuid>
<memory unit='KiB'>4096000</memory>
<currentMemory unit='KiB'>4096000</currentMemory>
<vcpu placement='static'>2</vcpu>
启动虚拟机
virsh start node6
创建自定义 yum 源
拷贝 docker-engine* /var/ftp/public
cd /var/ftp/public
createrepo
.
#--------------------虚拟机--------------------#
修改主机名和静态 ip 地址
echo docker01 >/etc/hostname
配置静态 ip 地址 /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO="static"
IPADDR="192.168.6.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.6.254"
配置 /etc/yum.repos.d/docker.repo
[local_docker]
name=CentOS docker
baseurl="ftp://192.168.6.254/public"
enabled=1
gpgcheck=0
安装 docker
yum install docker-engine
设置开机自启动
systemctl enable docker
重启虚拟机
reboot
#----------------------物理机--------------------------#
创建一台 4G 内存的虚拟机
创建虚拟机硬盘
qemu-img create -b node.qcow2 -f qcow2 node6.img 20G
创建虚拟机配置文件
sed 's/demo/node6/' demo.xml >/etc/libvirt/qemu/node6.xml
定义虚拟机
virsh define /etc/libvirt/qemu/node6.xml
编辑虚拟机修改内存
virsh edit node6
<domain type='kvm'>
<name>node6</name>
<uuid>9dce25b7-ae23-4336-84ff-4d7d8a3d1726</uuid>
<memory unit='KiB'>4096000</memory>
<currentMemory unit='KiB'>4096000</currentMemory>
<vcpu placement='static'>2</vcpu>
启动虚拟机
virsh start node6
创建自定义 yum 源
拷贝 docker-engine* /var/ftp/public
cd /var/ftp/public
createrepo .
#--------------------虚拟机--------------------#
修改主机名和静态 ip 地址
echo docker01 >/etc/hostname
配置静态 ip 地址 /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO="static"
IPADDR="192.168.6.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.6.254"
配置 /etc/yum.repos.d/docker.repo
[local_docker]
name=CentOS docker
baseurl="ftp://192.168.6.254/public"
enabled=1
gpgcheck=0
安装 docker
yum install docker-engine
设置开机自启动sy
stemctl enable docker
重启虚拟机
reboot
[root@docker01 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
ether 02:42:3e:e1:58:12 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
登录 | 立即注册