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分佈式彈性雲