docker入門+下載到建立完整案列演示(附帶思維導圖)
前置條件
需要掌握Linux及常用命令
思維導圖
Docker 架構
Docker基礎簡介
1. Docker是什麼
-
Docker是一個由GO語言寫的程式執行的“容器”(Linux containers, LXCs),它是完整的一套容器管理系統
-
Docker提供了一組命令,讓使用者更加方便直接地使用容器技術,而無需要過多關心底層核心技術
什麼是容器
重點奧:一個容器就相當於一個虛擬機器
docker用途,目前有三大類
-
1.提供一次性的環境。比如,本地測試他人的軟體、持續整合的時候提供單元測試和構建的環境
-
2.提供彈性的雲服務。因為 Docker 容器可以隨開隨關,很適合動態擴容和縮容
-
3.組建微服務架構。通過多個容器,一臺機器可以跑多個服務,因此在本機就可以模擬出微服務架構
2. Docker與虛擬化
1.傳統來看,虛擬化既可以通過硬體模擬來實現,也可以通過作業系統軟體來實現 而容器技術則更為優雅
2.它充分利用了作業系統本身已有的機制和特性,可以實現遠超傳統虛擬機器的輕量級虛擬化 因此,有人甚至把它稱為 “新一代的虛擬化”技術,並將基於容器打造的雲平臺親切地稱為“容器雲”毫無疑問
3.Docker 正是眾多容器技術中的佼佼者,是容器技術發展過程中耀眼的一抹亮色
3. Docker虛擬化的好處
好處一:應用部署方便
-
舉個簡單的例子,假設使用者試圖基於最常見的 LAMP (Linux+Apache+MySQL+PHP )組 合來構建網站
按照傳統的做法,首先需要安裝 Apache MySQL PHP 以及它們各自運
行所依賴的環境;之後分別對它們進行配置(包括建立合適的使用者、配置引數等);經過大
量的操作後,還需要進行功能測試,看是否工作正常;如果不正常,則進行除錯追蹤,意 味著更多的時間代價和不可控的風險
可以想象,如果應用數目變多,事情會變得更加難以處理 -
更為可怕的是, 旦需要伺服器遷移(例如從阿里雲遷移到騰訊雲),往往需要對每個 應用都進行重新部署和除錯
這些瑣碎而無趣的“體力活”,極大地降低了使用者的工作效率
究其根源,是這些應用直接執行在底層作業系統上,無法保證同一份應用在不同的環境中行為一致 -
Docker 提供了一種更為聰明的方式,通過容器來打包應用、解藕應用和執行平臺
這意味著遷移的時候,只需要在新的伺服器上啟動需要的容器就可以了,無論新舊伺服器 是否是同一型別的平臺
這無疑將幫助我們節約大量的寶貴時間,並降低部署過程出現問題的風險
好處二:伺服器同等配置,效能更優,利用率更高
-
讓我們假設你有一個容器映象(image)容量是1GB,如果你想用一個完整的虛擬機器來裝載,你得需要容量的大小是1GB乘上你需要虛擬機器的數量。但使用Linux容器虛擬化技術(LXC)和AuFS,你可以共享1GB容量,
-
如果你需要1000個容器,假設他們都執行在同樣的系統影像上,你仍然可以用稍微比1GB多一點的空間來給容器系統
-
因此,藉助經過全面調優的容器系統,你就可以在同一硬體上擁有數量比使用Xen虛擬機器或KVM虛擬機器多出四到六倍的伺服器應用例項。
實際案例:以springcloud微服務為例
7個服務-7臺linux伺服器
7個服務-1臺linux伺服器-docker-7個映象
4. 核心概念
** Docker大部分的操作都圍繞著它的三大核心概念: 映象、容器和倉庫(本章只用到映象/容器,倉庫後面介紹)**
1.映象
-
Docker 映象類似於虛擬機器映象,可以將它理解為一個只讀的模板
-
例如,一個映象可以包含一個基本的作業系統環境(例如:ubuntu16.04),可以把它稱為一個 ubuntu16.04 映象
2.容器
-
Docker 容器類似於一個輕量級的沙箱, Docker利用容器來執行和隔離應用
-
容器是從映象建立的應用執行例項 它可以啟動、開始、停止 刪除,而這些容器都是彼此相互隔離、互不可見的
-
可以把容器看作一個簡易版的 Linux 系統環境(包括 root 使用者許可權、程式空間、使用者空間和網路空間等)
以及執行在其中的應用程式打包而成的盒子
3.倉庫
- Docker 倉庫類似於程式碼倉庫,是 Docker 集中存放映象檔案的場所。
CentOS7 安裝docker(線上方式)
1.核心版本資訊檢查
uname -r
2.解除安裝可能存在的舊版本
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
3.安裝必要的系統工具
yum install -y yum-utils device-mapper-persistent-data lvm2
4.換源新增docker-ce安裝源(linux本身的應用市場)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5.更新yum快取
yum makecache fast
6.安裝docker-CE
yum -y install docker-ce
7.驗證docker是否安裝成功
docker --version 或 docker info
8.驗證
8.1檢視docker服務是否啟動
1.檢視docker服務的狀態
- systemctl status docker
2.啟動docker服務
- systemctl start docker
3.停止docker服務
- systemctl stop docker
4.重啟docker服務
- systemctl restart docker
5.把docker服務做成隨宿主機啟動而啟動
- systemctl enable docker 設定自啟動
- systemctl daemon-reload 重新整理配置
映象的操作
1.配置加速器
- 國內從Docker Hub下載映象速度很慢,我們可以配置阿里雲專屬加速器來解決
瀏覽器訪問並登陸阿里雲(淘寶或支付寶帳號登陸也可以)
https://www.aliyun.com/ - 登陸後,進入阿里雲“控制檯”,搜尋“容器映象服務”,然後點選選單:“映象中心”–>“映象加速器”
最後,將容器右邊的“加速器地址”複製下來即可
https://oyi1xr7k.mirror.aliyuncs.com - 設定容器映象服務的密碼(可選)
容器映象服務(Container Registry)提供多地域映象託管能力,穩定的國內外映象構建服務,便捷的映象授權功能,
方便使用者進行映象全生命週期管理。在開通流程中,您需要設定獨立於賬號密碼的Registry登入密碼,便於映象的上傳、下載。
注1:此步驟為可選,如果需要使用阿里雲來管理你的映象 ,此步驟必須設定
2.修改docker相關配置
- linux輸入命令,如果沒有也會給你建立一個daemon.json
vi /etc/docker/daemon.json - 新增下面內容(地址替換成上面的加速器地址):
{
“registry-mirrors”:[“https://8mvln8cw.mirror.aliyuncs.com”]
}
重新載入配置
-
cd /etc/docker
ls
systemctl daemon-reload 重新整理配置
重啟docker
- systemctl restart docker
3.搜尋映象
-
docker search 映象名稱
eg:docker search centos 、 docker search mysql
4.下載映象
- docker pull 映象名
- eg:獲取一個 centos 系統的基礎映象可以使用如下的命令
- docker pull centos 沒有給版本號,預設下載最新的
- docker pull centos:版本號
5.檢視映象
- docker images
6.刪除映象
- docker rmi 映象ID/標籤
這個就不演示了
容器的操作
1.檢視所有容器
- docker ps -a all:所有
2.建立容器
- docker run -itd --name 容器名字 映象名字:映象版本 /bin/bash
- docker run -itd --name 容器名字 映象名字:映象版本 /bin/bash
- docker run -itd --name 容器名字 映象id /bin/bash
- 簡寫:docker run -itd --name 容器名字 映象id
3.刪除容器
- docker rm 容器ID/容器名
4.啟停docker容器
- docker start 容器ID/name
- docker stop 容器ID或name
- docker restart 容器ID或name
5.進入容器
- docker exec -it 容器ID/容器NAME /bin/bash
- 簡寫:docker exec -it 容器ID/容器NAME bash
6.退出容器
- exit
相關文章
- python入門知識思維導圖Python
- 萬彩腦圖大師教程 | 思維導圖預載入設定
- xmind 2023思維導圖軟體啟用下載 mac/winMac
- typora思維導圖
- 前端思維導圖前端
- 一張思維大圖入門ReactReact
- Python基礎語法筆記——帶思維導圖Python筆記
- Xmind使用教程:給思維導圖加水印 「Xmind思維導圖2023」
- 小白變大神——Docker入門到精通完整實戰Docker
- 思維導圖學 MavenMaven
- 英語?思維導圖?
- 常用思維導圖工具
- 觀潮思維導圖
- 前端思維導圖 8前端
- 思維導圖Xmind 2022
- 思維導圖軟體
- 運維工程師思維導圖運維工程師
- 思維導圖教程是什麼?該怎樣繪製思維導圖?
- 3A Cloud 思維導圖 for Mac(思維導圖軟體)中文版CloudMac
- JavaWeb尚矽谷書城專案思維導圖JavaWeb
- 38、外觀數列 | 演算法(leetode,附思維導圖 + 全部解法)300題演算法
- 專案管理系列---腦圖(思維導圖)工具深度分析專案管理
- 麒麟作業系統 (kylinos) 從入門到精通 - 辦公環境 - 第二十篇 在PKS下使用Xmind思維導圖作業系統
- iMindMap教你用思維導圖記憶法制作古詩思維導圖
- 思維導圖軟體哪個好,英語思維導圖怎麼畫
- 基於session的登入與退出思維導圖Session
- vue-router思維導圖Vue
- Python(模組)思維導圖Python
- python學習_思維導圖Python
- OpenTelemetry Logging 思維導圖,收藏
- 思維導圖概覽SpringCloudSpringGCCloud
- XMind 2022 XMind思維導圖
- Mac思維導圖Xmind 2022Mac
- XMind 2021 思維導圖工具
- Xmind 2022 思維導圖工具
- 53、最大子陣列和 | 演算法(leetcode,附思維導圖 + 全部解法)300題陣列演算法LeetCode
- 好用的思維導圖軟體,安卓思維導圖軟體哪個好安卓
- 手摸手帶你 Docker 從入門到實踐Docker