Docker 是一個開源的應(yīng)用容器引擎,基于 GO 語言開發(fā)。提供 Docker 容器 可以封裝 開發(fā)者的應(yīng)用以及應(yīng)用依賴,該 容器使用沙箱機制,保證了容器之間的安全性。Docker 容器可以移植性,發(fā)布到 Linux 主機上,可以實現(xiàn)虛擬化。
1.Docker 的特點
- 簡單的管理
docker 的修改以增量的方式被分發(fā)和更新,可以實現(xiàn)自動化高效的管理 - 快速的交付和部署
開發(fā)人員可以使用docker 鏡像來構(gòu)建一套開發(fā)的容器,運維人員可以直接使用 docker 容器來部署代碼。并且 docker 容器啟動速度快,大量節(jié)約了開發(fā) 、測試 、 部署的時間 - 高效的虛擬化
由于 docker 容器運行時采用的 內(nèi)核級別的虛擬化,不需要額外的虛擬機程序軟件支持,所以性能和效率更高 - 方便的遷移和擴展
docker 容器可以運行在 任意的平臺上,任意平臺上的應(yīng)用,都可以采用docker 容器來進行遷移和擴展
2. Docker 的安裝
2.1 安裝要求
docker 支持多種平臺,諸如 window 、 mac 、 linux 以及各種 cloud 平臺上。建議安裝在 ubuntu 系統(tǒng)上,由于 docker 是基于 ubuntu 系統(tǒng)發(fā)布的。當(dāng)然我們可以根據(jù)自己的對平臺的熟悉程度來選擇。
我們就采用 centos7 平臺來安裝docker,這里如果采用 centos7 來安裝docker ,平臺系統(tǒng)為 64位,并內(nèi)核版本必須是 3.10 以上;docker 有兩個版本一個是免費的社區(qū)版CE,另一個是收費的企業(yè)版EE,當(dāng)然這里采用免費版學(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.啟動 Docker 后臺服務(wù)
sudo systemctl start docker
6.測試運行 hello-world
[root@runoob ~]# docker run hello-world
docker run hello-world 遠程拉取一個 hello-world 鏡像并在容器啟動
- 腳本安裝
1.確保 yum 包更新到最新。
$ sudo yum update
2、執(zhí)行 Docker 安裝腳本。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
執(zhí)行這個腳本會添加 docker.repo 源并安裝 Docker。
3、啟動 Docker 進程。
sudo systemctl start docker
4、驗證 docker 是否安裝成功并在容器中執(zhí)行一個測試的鏡像。
$ sudo docker run hello-world
5. 查看運行的容器
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。
請在該配置文件中加入(沒有該文件的話,請先建一個):
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
3.Docker 的運行機制
3.1 docker 架構(gòu)

docker 架構(gòu)圖
- Client 客戶端
docker 的客戶端,通過 docker cli 命令行令接口相關(guān)指令跟 docker 守護進程進行交互,從而進行鏡像的拉取、創(chuàng)建 和運行等操作 - DOCKER_HOST docker 主機
docker 主機就是 docker 內(nèi)部引擎運行的主機。指的是 docker daemon 守護進程跟 client 客戶端和 registry 注冊中心進行交互,從而管理 image 鏡像、 網(wǎng)絡(luò) 、 容器 、 數(shù)據(jù)卷對象。 - Registry 注冊中心
注冊中心實質(zhì)就是 docker 鏡像倉庫。默認(rèn)使用的是 docker 官方的遠程倉庫、也可以搭建自己的本地倉庫