Docker 是一個(gè)開源的應(yīng)用容器引擎,基于 GO 語言開發(fā)辕翰。提供 Docker 容器 可以封裝 開發(fā)者的應(yīng)用以及應(yīng)用依賴夺衍,該 容器使用沙箱機(jī)制,保證了容器之間的安全性喜命。Docker 容器可以移植性沟沙,發(fā)布到 Linux 主機(jī)上,可以實(shí)現(xiàn)虛擬化壁榕。
1.Docker 的特點(diǎn)
- 簡單的管理
docker 的修改以增量的方式被分發(fā)和更新矛紫,可以實(shí)現(xiàn)自動(dòng)化高效的管理 - 快速的交付和部署
開發(fā)人員可以使用docker 鏡像來構(gòu)建一套開發(fā)的容器,運(yùn)維人員可以直接使用 docker 容器來部署代碼牌里。并且 docker 容器啟動(dòng)速度快颊咬,大量節(jié)約了開發(fā) 务甥、測試 、 部署的時(shí)間 - 高效的虛擬化
由于 docker 容器運(yùn)行時(shí)采用的 內(nèi)核級(jí)別的虛擬化喳篇,不需要額外的虛擬機(jī)程序軟件支持敞临,所以性能和效率更高 - 方便的遷移和擴(kuò)展
docker 容器可以運(yùn)行在 任意的平臺(tái)上,任意平臺(tái)上的應(yīng)用麸澜,都可以采用docker 容器來進(jìn)行遷移和擴(kuò)展
2. Docker 的安裝
2.1 安裝要求
docker 支持多種平臺(tái)挺尿,諸如 window 、 mac 炊邦、 linux 以及各種 cloud 平臺(tái)上编矾。建議安裝在 ubuntu 系統(tǒng)上,由于 docker 是基于 ubuntu 系統(tǒng)發(fā)布的馁害。當(dāng)然我們可以根據(jù)自己的對(duì)平臺(tái)的熟悉程度來選擇窄俏。
我們就采用 centos7 平臺(tái)來安裝docker,這里如果采用 centos7 來安裝docker 蜗细,平臺(tái)系統(tǒng)為 64位裆操,并內(nèi)核版本必須是 3.10 以上;docker 有兩個(gè)版本一個(gè)是免費(fèi)的社區(qū)版CE,另一個(gè)是收費(fèi)的企業(yè)版EE炉媒,當(dāng)然這里采用免費(fèi)版學(xué)習(xí)
2.2 安裝方式
- 在線安裝
1.安裝一些必要的系統(tǒng)工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.添加軟件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.更新 yum 緩存:
sudo yum makecache fast
4.安裝 Docker-ce:
sudo yum -y install docker-ce
5.啟動(dòng) Docker 后臺(tái)服務(wù)
sudo systemctl start docker
6.測試運(yùn)行 hello-world
[root@runoob ~]# docker run hello-world
docker run hello-world 遠(yuǎn)程拉取一個(gè) hello-world 鏡像并在容器啟動(dòng)
- 腳本安裝
1.確保 yum 包更新到最新踪区。
$ sudo yum update
2、執(zhí)行 Docker 安裝腳本吊骤。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
執(zhí)行這個(gè)腳本會(huì)添加 docker.repo 源并安裝 Docker缎岗。
3、啟動(dòng) Docker 進(jìn)程白粉。
sudo systemctl start docker
4传泊、驗(yàn)證 docker 是否安裝成功并在容器中執(zhí)行一個(gè)測試的鏡像。
$ sudo docker run hello-world
5. 查看運(yùn)行的容器
docker ps
- 刪除 docker
$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker
- 添加國內(nèi)鏡像
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 來配置 Daemon鸭巴。
請(qǐng)?jiān)谠撆渲梦募屑尤耄]有該文件的話眷细,請(qǐng)先建一個(gè)):
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
3.Docker 的運(yùn)行機(jī)制
3.1 docker 架構(gòu)
docker 架構(gòu)圖
- Client 客戶端
docker 的客戶端,通過 docker cli 命令行令接口相關(guān)指令跟 docker 守護(hù)進(jìn)程進(jìn)行交互鹃祖,從而進(jìn)行鏡像的拉取溪椎、創(chuàng)建 和運(yùn)行等操作 - DOCKER_HOST docker 主機(jī)
docker 主機(jī)就是 docker 內(nèi)部引擎運(yùn)行的主機(jī)。指的是 docker daemon 守護(hù)進(jìn)程跟 client 客戶端和 registry 注冊(cè)中心進(jìn)行交互恬口,從而管理 image 鏡像校读、 網(wǎng)絡(luò) 、 容器 祖能、 數(shù)據(jù)卷對(duì)象歉秫。 - Registry 注冊(cè)中心
注冊(cè)中心實(shí)質(zhì)就是 docker 鏡像倉庫。默認(rèn)使用的是 docker 官方的遠(yuǎn)程倉庫养铸、也可以搭建自己的本地倉庫