傳統企業應用構建
- 應用被直接部署在操作系統之上,並且操作系統直接安裝於硬件之上應用被操作系統綁定
- 操作系統被硬件綁定
- 缺點
- 部署非常慢(啓動應用的速度非常慢)
- 成本非常高(原有服務器的操作系統不支持這個應用,就需要再買一臺服務器)
- 資源浪費
- 難於遷移和擴展(因爲應用只能支持某個操作系統,如CAD不支持mac)
- 被限定硬件廠商(很多應用只能運行在x86 CPU上)
虛擬化應用部署
既然傳統應用構建需要購買服務器。那麼,運行虛擬機不就好了?
這個方案有優點也有缺點。
-
應用被直接部署在操作系統之上,操作系統安裝於虛擬硬件之上,虛擬硬件依賴硬件
-
應用被操作系統綁定
-
優點
- 操作系統被封裝於文件中,可以在硬件設備之間自由的傳播
- 隔離分區
- 文件封裝
- 資源池
- 易擴展(可以隨意擴大縮小內存等資源)
- 易上雲
-
缺點
- 資源浪費
- 啓動速度慢
- 遷移過程慢
- 不能適應SOA架構
容器的由來
- 1982年 Unix系統中出現chroot工具,然後後期衍生出LXC一整套工具 2005年 OpenVZ發佈
- 2013年 dotCloud發起基於Go語言的開源項目Docker
- 2014年 Docker鏡像下載數達到了一百萬次
- 2015年 Docker鏡像下載數突破十億次
- 2017年 Docker鏡像下載數突破百億次
- 2018年 "最受歡迎的雲計算開源項目"調查中,Docker僅次於2010年發起的Openstack
- 至今,主流的操作系統都已經支持Docker,甚至內置Docker引擎
容器是什麼
- 容器就像是虛擬機,裏面一樣可以運行應用。
- 但容器不是虛擬機,他和虛擬機有很大不一樣。(重點)
Docker與虛擬機比較:
- 虛擬化是物理資源層面的隔離
- 容器是APP層面的隔離
容器和虛擬機的區別(重點)
-
對於初學者,可以簡單的將容器看做爲虛擬機。
-
虛擬機工作在虛擬出來的硬件層之上,而容器工作在Docker引擎上
-
虛擬機像是一臺機器.而Docker是輕量級的,更像是一個應用,而不是物理機.
-
容器是秒級啓動的,佔用資源少,虛擬機佔用資源多.
-
容器利用鏡像創建,並且是層次關係的,節約資源.虛擬機需要安裝操作系統才能使用.
-
虛擬機裏面可以運行docker,但是Docker中不能運行虛擬機。。
Docker的安裝
# step 1: "安裝必要的一些系統工具:"
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: "添加軟件源信息:"
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
# Step 3: "更新並安裝 Docker-CE:"
sudo yum -y install docker-ce
# Step 4:"開啓Docker服務:"
sudo systemctl start docker
sudo systemctl enable docker
# Step 5:"設置Docker鏡像源:"
sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://tyavu5lp.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload #啓動docker後臺進程
sudo systemctl restart docker #啓動Docker Client
# 注意:
# 官方軟件源默認啓用了最新的軟件,您可以通過編輯軟件源的方式獲取各個版本的軟件包。例如官方並沒有將測試版本的軟件源置爲可用,你可以通過以下方式開啓。同理可以開啓各種測試版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 將 [docker-ce-test] 下方的 enabled=0 修改爲 enabled=1
#
# 安裝指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2 : 安裝指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]