
概念
-
image鏡像,里面包含了靜態(tài)文件(APP源代碼,runtime, 庫,配置文件,環(huán)境變量) -
container運(yùn)行鏡像時的一個實(shí)例進(jìn)程
鏡像就像一個編譯好的 C 可執(zhí)行文件。雙擊文件時,系統(tǒng)創(chuàng)建一個進(jìn)程;再次雙擊時,系統(tǒng)創(chuàng)建第二個進(jìn)程。
docker 通過鏡像創(chuàng)建容器,容器通過和系統(tǒng)內(nèi)核交互獲得所需系統(tǒng)資源(內(nèi)存,CPU,網(wǎng)絡(luò)),并和系統(tǒng)的其他部分隔離。
容器比虛擬機(jī)更輕
容器和虛擬化沒有關(guān)系,而是應(yīng)該被稱為容器化;它和虛擬機(jī)的相識之處在于環(huán)境隔離
- 容器直接通過系統(tǒng)內(nèi)核獲取運(yùn)行 APP 所需的系統(tǒng)資源,并與其他的其他部分相互隔離
- 對于虛擬機(jī),它需要一整套虛擬硬件來運(yùn)行 OS,然后再運(yùn)行 APP;虛擬OS調(diào)用物理資源的指令需要通過 虛擬層(Hypervisor) 進(jìn)行轉(zhuǎn)換

容器和虛擬機(jī)對比
搭建 Docker 環(huán)境
https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1
版本:
- 開發(fā)測試:
Docker CE- Docker Community Edition - 生產(chǎn)環(huán)境:
Docker EE- Docker Enterprise Edition
要求:全新的 CentOS 7
添加軟件倉庫
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
安裝 docker-ce
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
確認(rèn)指紋


執(zhí)行 docker 需要 root 權(quán)限
為了普通用戶可以執(zhí)行 docker,將其加入組 docker
# 將用戶 admin 加入組 docker, 并重新登錄 shell
[admin@localhost ~]$ sudo usermod -aG docker admin
[admin@localhost ~]$ exit
# 確認(rèn)用戶已加入組 docker
[admin@localhost ~]$ groups admin
admin : admin wheel docker
啟動 docker
# 啟動 docker
$ sudo systemctl start docker
# 開機(jī)啟動docker
$ sudo systemctl enable docker

docker 成功啟動
確認(rèn)正確安裝 Docker
docker 檢測到本地沒有鏡像 hello-world,于是到于是到默認(rèn)的公共鏡像倉庫 Docker Hub 獲取鏡像 library/hellow-world,并運(yùn)行一個容器
