KVM Xen VMware VirtualBox Docker
并不能把多个物理机虚成一个虚拟机,只能把一个物理机虚成多个虚拟机
Docker是在Linux容器(LXC)等技术上进行封装,这个技术是linux本来就有的。LXC做资源隔离的,Linux可以启动多个进程应用,互不冲突影响,就是基于LXC技术,/cgroup,
Docker虚拟化有三个概念:镜像(轻量级ISO)、容器(装好的轻量级系统)、仓库(存放镜像的地方),有公共仓库和私有仓库。去仓库下载镜像,镜像起来就是容器。
特点
·启动非常快,启动一个容器就像启动一个nginx进程
·非常轻量级虚拟化,一个机器可以部署1000个容器,虚拟机能布10个就不错了
·开源免费
windows虚拟化:esxi,裸机直接装esxi,这个就是镜像iso,相当于直接装vmware,然后通过远程连接,这个是企业级的,VMware是工作站,个人的。
阿里云也是一台高配物理机,64C,512G内存,硬盘PB级别。虚拟成60台,剩下4Clinux系统自用
买的一个阿里云基础主机,1CPU,1G内存,20G硬盘。
安装配置
sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config;
wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm;
rpm -ivh epel-release-6-8.noarch.rpm;
yum install lxc libcgroup device-mapper-event-libs;
yum install -y docker-io device-mapper*;
/etc/init.d/docker start;
ps -ef |grep docker;
Docker常用命令讲解
docker version #查看版本
docker search centos/nginx#搜索可用docker镜像
docker p_w_picpaths 查看当前docker所有镜像
docker pull centos6.8 #下载镜像,官网有很多镜像
docker export 容器ID#导出镜像
cat centos68.tar | docker import - centos68_newname #Docker导入镜像(没启动容器)
docker run -i(交互输入)t(打开一个连接)d(后台) centos6.8 /bin/bash #启动容器
docker ps -a#看目前运行的镜像(-q只看镜像ID)
docker exec -it 容器名 /bin/bash进到这个容器里
docker exec 容器名 +命令 #直接在外面执行命令
docker start 容器ID #启动已退出的容器
docker stop 容器ID #关闭容器
docker rm 容器ID #删掉容器
docker容器小,不适合存数据,适合运行应用,tomcat
我们公司是4台物理机虚拟出100个docker,跑nginx,tomcat集群,数据是存在物理机
默认是NAT模式,只能用Linux宿主机登录,不能用外网登。用脚本装成桥接模式,就可以直接用secureCRT连了,方便管理。这样用脚本装虚拟机,直接连虚拟机,而不用用vmware了。
eth0里面BRIDGE="br0" BRIDGE代表桥接网卡
br0里面TYPE="Bridge"
自动分配IP地址是基于pipework
也可以用端口映射连接docker,单机版docker,宿主机80端口转到docker80端口,一个宿主机上一整套系统,不存在端口占用
虚拟机CPU核数不能超过宿主机核心数。
脚本可以生成scv文件,用excel看
docker run -itd -v /data/:/data/ 容器名 /bin/bash #可以挂载本地目录至docker
docker mesos分布式弹性云
转载于:https://blog.51cto.com/mustafayin/1929666