docker可以裝在虛擬機(jī)上;docker容器運(yùn)行在虛擬機(jī)或者物理機(jī)上都可以,無論是虛擬機(jī)還是物理機(jī),都是硬件和基礎(chǔ)設(shè)施的一種交付方式,而docker容器主要就是解決以軟件為中心的系列問題,在虛擬機(jī)中運(yùn)行容器是可行的。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker-1.13.1版、Dell G3電腦。
docker可以裝在虛擬機(jī)上嗎
docker容器運(yùn)行在虛擬機(jī)或者物理機(jī)上都可以。嚴(yán)格來講,容器和虛擬機(jī)并不是一個層次的東西,它就是軟件+環(huán)境的打包集合。
無論是虛擬機(jī)還是物理機(jī),都是硬件/基礎(chǔ)設(shè)施的一種交付方式,本質(zhì)上是一個層次的;而容器主要要解決以軟件為中心的系列問題(開發(fā)、測試、部署、發(fā)布、運(yùn)行)。
在虛擬機(jī)中運(yùn)行容器,已經(jīng)成為一種實(shí)踐中的慣例,比如,AWS的container服務(wù)就是只運(yùn)行在虛擬機(jī)中的。
關(guān)于容器docker和虛擬化技術(shù)
Docker守護(hù)進(jìn)程可以直接與主操作系統(tǒng)進(jìn)行通信,為各個Docker容器分配資源;它還可以將容器與主操作系統(tǒng)隔離,并將各個容器互相隔離。Docker通常用于隔離不同的應(yīng)用,例如前端,后端以及數(shù)據(jù)庫。
Docker有著小巧、遷移部署快速、運(yùn)行高效等特點(diǎn),但隔離性比服務(wù)器虛擬化差:不同的集裝箱屬于不同的運(yùn)單(Docker上運(yùn)行不同的應(yīng)用實(shí)例),相互獨(dú)立(隔離)。但由同一個庫管人員管理(主機(jī)操作系統(tǒng)內(nèi)核),因此通過庫管人員可以看到所有集裝箱的相關(guān)信息(因?yàn)楣蚕聿僮飨到y(tǒng)內(nèi)核,因此相關(guān)信息會共享)。
虛擬機(jī)更擅長于徹底隔離整個運(yùn)行環(huán)境。例如,云服務(wù)商通常采用虛擬機(jī)技術(shù)隔離不同的用戶。虛擬機(jī)啟動需要數(shù)分鐘,而Docker容器可以在數(shù)毫秒內(nèi)啟動。由于沒有臃腫的操作系統(tǒng),Docker可以節(jié)省大量的磁盤空間以及其他系統(tǒng)資源。
服務(wù)器虛擬化就好比在碼頭上(物理主機(jī)及虛擬化層),建立了多個獨(dú)立的“小碼頭”—倉庫(虛擬機(jī))。其擁有完全獨(dú)立(隔離)的空間,屬于不同的客戶(虛擬機(jī)所有者)。每個倉庫有各自的庫管人員(當(dāng)前虛擬機(jī)的操作系統(tǒng)內(nèi)核),無法管理其它倉庫。不存在信息共享的情況。
因此,我們需要根據(jù)不同的應(yīng)用場景和需求采用不同的方式,使用Docker技術(shù)或使用服務(wù)器虛擬化技術(shù)。
在linux虛擬機(jī)上安裝docker
步驟:
1、檢查內(nèi)核版本,必須是3.10及以上
uname -r
2、安裝docker
yum install docker
3、輸入y確認(rèn)安裝
4、啟動docker
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker -v
Docker version 1.12.6, build 3e8e77d/1.12.6
5、開機(jī)啟動docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
6、停止docker
systemctl stop docker
推薦學(xué)習(xí):《docker視頻教程》