目標:解釋使用Docker原因,示范使用方法,如何與軟體開發流程結合,
什么是容器?
容器是對應用程式以及其依賴關系的封裝,與虛擬機一樣擁有一個被隔離的作業系統實體,用來運行應用程式,
容器優點:
- 容器能與主機作業系統共享資源,相比在主機上直接運行程式,容器的性能損耗非常低,
- 容器具有可移植性,
- 容器是輕量級的
- 容器是對應用程式以及其依賴封裝,意味著不用擔心環境差異、依賴關系、
微服務是容器的最主要用例,微服務是一種軟體系統開發和構成形式,由小而獨立的組件組成,組件之間通過網路互相連接,
傳統單一架構軟體需要擴展時,縱向擴展(向下擴展)是唯一選擇,只能把機器升級,增加記憶體和使用更強大的CPU,
微服務設計則是橫向擴展,為了滿足需求只需要部署多臺機器分負載即可,
Docker基本操作
安裝Docker
Linux安裝和window都可安裝,需要可自行百度,
基本命令
docker inspect 容器ID或名稱 獲取關于某個容器的資訊
docker diff 容器ID或名稱 找出容器的IP地址
docker logs 容器名稱 得知容器里發發生的一切事情
exit 退出容器
docker ps 列出正在運行的容器
docker ps -a 列出所有容器,包括已退出容器
docker start 容器重啟
docker rm 容器 洗掉容器
docker ps -aq -f status=exited 洗掉所有已停止的容器 可寫成一個shell腳本 docker rm -v $(docker ps -aq -f status=exited) -v引數在這里的作用意味著當所有docker管理的資料卷已經沒有和任何容器關聯時一律洗掉
為了避免已停止的容器數量不斷增加,可以在執行docker run的時候加上--rm 引數,作用是當容器退出時,容器和相關的系統檔案會被一并洗掉
容器轉鏡像 docker commit 無論容器是運行中或者停止都可 docker commit 容器的名稱 新鏡像的名稱 存放鏡像倉的名稱 執行成功后回傳鏡像的唯一識別碼
Dockerfile
Dockerfile是一個描述如何創建鏡像所需步驟的文本檔案 通過Dockerfile生成鏡像命令 docker build -t dockerfile目錄路徑
聯合檔案系統(聯合掛載)
聯合檔案系統允許多個檔案系統疊加,并表現一個單一的檔案系統,檔案夾中的檔案可以來自多個檔案系統,docker中支持多種不同的聯合檔案系統實作,可以通過docker info 命令查看輸出結果中的“Storage Driver”值得知,
Docker的鏡像由多個不同的層組成,每一個層都是一個只讀的檔案系統,
dockerfile里的每個指令都會創建一個新的層,這個層將位于前一個層之上,當一個鏡像被轉化成一個容器時,docekr引擎會在鏡像之上添加一個位于最上層的可讀寫檔案系統,
容器具備以下幾種狀態:已創建created 重啟中 restarting 運行中running 已暫停 paused 已退出 exited
術語
寄存服務 負責托管和發布鏡像的服務 默認dorcker hub
倉庫 一組相關鏡像(通常是一個應用或服務的不同版本) 的集合
標簽 倉庫中鏡像的識別號
Docker中網路連接的改變
使用 - - link命令把容器鏈接起來,
通過docker run --link 現存器:新容器 鏈接起來,且已新容器作為現存容器的主機名,將新容器指向現存容器的IP地址,
Docker通過資料卷讓容器與主機或容器與其他容器之間輕松共享資料,資料卷是直接在主機掛載的檔案或目錄,不屬于常規聯合檔案系統的一部分,意味著允許與其他容器進行共享,
宣告資料卷的兩種方法:
- Dockefile里使用VOLUME指令 VOLUME /data
- 執行docker run時使用 -v 引數 docker run -v /data 目錄
默認情況下,目錄或檔案掛載在主機Docker安裝目錄下,docker run 命令可以指定用于掛載的主機目錄 ,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250190.html
標籤:其他
上一篇:K8S-Demo集群實踐:部署私有云盤owncloud(10.6版本)
下一篇:Origin2017繪制熱力圖
