文章目錄
- 一、Docker概述
- `容器技術的核心`
- `什么是Docker`
- `Docker和傳統虛擬化方式對比`
- `docker體系結構`
- `Docker特性`
- 優點
- 缺點
- ` 應用場景`
- 二、基本概念
- `鏡像(image)`
- `容器(container)`
- `鏡像倉庫(repository)`
- 三、安裝Docker
- 四、Docker Run流程
- 五、Docker鏡像原理
- `UnionFS`
- `Docker鏡像加載原理`
- `分層原理`
- 六、容器資料卷
- 七、Dockerfile制作鏡像
- 八、Docker網路
參考文章、視頻:
Docker官方檔案
Docker中文檔案
狂神說Docker
一、Docker概述
Docker 作為目前最流行的開源容器引擎,具有開箱即用、快速部署、資源隔離、可移植性強等特性,可以在短時間上手使用,實作容器化部署應用,
容器技術的核心
- Cgroups(Control Groups)-資源管理[限制使用的資源]
- NameSpace-行程隔離(命名空間)
- SELinux安全
什么是Docker
- Docker 是一個開源專案,誕生于 2013 年初,最初是 dotCloud 公司內部的一個業余專案,2014年4月9日,Docker1.0發布
- 基于 Google 公司推出的 Go 語言實作, 專案后來加入了 Linux 基金會,遵從了 Apache 2.0 協議,專案代碼在 GitHub 上進行維護,
- Docker是完整的一套容器管理系統
- Docker提供了一組命令,讓用戶更加方便直接地使用容器技術,而不需要過多關心底層內核技術
- 是一個開源的應用容器引擎,使用Go語言開發,基于Linux內核的cgroup、namespace、Union FS等技術,對應用行程進行封裝隔離,并且獨立于宿主機與其他行程,這種運行時封裝的狀態稱為容器
- 早期版本基于LXC,從0.7以后開始去LXC,轉為自行研發的libcontainer,從1.11版本開始,進一步演進為使用runC和containerd
Docker和傳統虛擬化方式對比


docker體系結構

架構圖

Docker特性
優點
? 相比于傳統的虛擬化技術,容器更加簡潔高效
? 開箱即用、快速部署、可移植性強、環境隔離
? 容器使用共享公共庫和程式
缺點
? 容器的隔離性沒有虛擬化強(linux下的容器不能虛擬出windows作業系統)
? 共用Linux內核,安全性有先天缺陷
? SELinux難以駕馭
應用場景
- 節省專案環境部署時間
- 環境一致性
- 持續集成
- 微服務
- 彈性伸縮
二、基本概念
鏡像(image)
- 鏡像好比一個模板,通過鏡像來創建容器,
- 一個鏡像可以創建N個容器
- 鏡像是不可變的,不能修改里面的內容
- 鏡像可分為:基礎鏡像(OS)、環境鏡像(jdk)、應用鏡像(tomcat)、業務鏡像(jar包)
容器(container)
- 鏡像run起來之后就稱之為容器
- 每個容器都是Linux的一個行程,也可以把容器看成是一個獨立的Linux系統
- 容器是可變的,可以在容器里面進行各種Linux操作(touch、mkdir、rm)
鏡像倉庫(repository)
- 存放鏡像的地方
- 分為公有倉庫和私有倉庫
- 官方的倉庫為Docker Hub,私有倉庫可以通過registry和harbor來搭建
三、安裝Docker
Shell腳本安裝Docker(二進制版)
SUSE12安裝docker19.03.13
四、Docker Run流程

五、Docker鏡像原理
UnionFS
聯合檔案系統(Union File System):它可以把多個目錄(也叫分支)內容聯合掛載到同一個目錄下,而目錄的物理位置是分開的,
鏡像可以通過分層來繼承,基于基礎鏡像(沒有父鏡像),可以制作各種具體的應用鏡像
Docker鏡像加載原理
bootfs(boot file system)主要包含bootloader和kernel.
Docker鏡像的最底層是bootfs,與典型的Linux是一樣的,包含boot加載器和內核,當boot加載完之后,整個內核就在記憶體中了,此時內核的使用權已由bootfs轉交給內核,系統也會卸載bootfs,
rootfs在bootfs之上,包含的就是典型Linux系統的/dev,/proc,/etc,/bin/等標準目錄,

由于 Docker 使用一個統一檔案系統,Docker 行程認為整個檔案系統是以讀寫方式掛載的, 但是所有的變更都發生頂層的可寫層,而下層的原始的只讀鏡像檔案并未變化,
頂層的可寫層稱為容器層,下層的原始只讀鏡像稱為鏡像層
分層原理
鏡像是分層的,每一層都可以共享,
六、容器資料卷
實作資料的持久化,
七、Dockerfile制作鏡像
dockerfile詳解
八、Docker網路
Docker網路詳解
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413665.html
標籤:其他
上一篇:mac pro M1(ARM)安裝:VMWare Fusion及linux(centos7/ubantu)(一)
