Docker的深入淺出


定義:

Docker是一個虛擬環境容器,可以將你的開發環境、代碼、配置文件等一並打包到這個容器中,並發布和應用到任意平台中。 原理: docker底層使用了LXC來實現,LXC將linux進程沙盒化,使得進程之間相互隔離,並且能夠協調各進程的資源分配。 LXC: LXC為Linux Container的簡寫。可以提供輕量級的虛擬化,以便隔離進程和資源,而且不需要提供指令解釋機制以及全虛擬化的其他復雜性。

Docker三個重要概念:

鏡像(Image):類似於虛擬機中的鏡像,是一個包含有文件系統的面向Docker引擎的只讀模板。任何應用程序運行都需要環境,而鏡像就是用來提供這種運行環境的。 容器(Container):類似於一個輕量級的沙盒,可以將其看作一個極簡的Linux系統環境(包括root權限、進程空間、用戶空間和網絡空間等),以及運行在其中的應用程序。Docker引擎利用容器來運行、隔離各個應用。容器是鏡像創建的應用實例,可以創建、啟動、停止、刪除容器,各個容器之間是是相互隔離的,互不影響。注意:鏡像本身是只讀的,容器從鏡像啟動時,Docker在鏡像的上層創建一個可寫層,鏡像本身不變。 倉庫(Repository):類似於代碼倉庫,這里是鏡像倉庫,是Docker用來集中存放鏡像文件的地方。注意與注冊服務器(Registry)的區別:注冊服務器是存放倉庫的地方,一般會有多個倉庫;而倉庫是存放鏡像的地方,一般每個倉庫存放一類鏡像,每個鏡像利用tag進行區分。

容器和虛擬機的區別:

 

容器是應用程序層的抽象,將代碼和依賴項打包在一起。多個容器可以在同一台計算機上運行,​​並與其他容器共享OS內核,每個容器在用戶空間中作為隔離的進程運行。容器占用的空間少於VM(容器映像的大小通常為幾十MB),可以處理更多的應用程序,並且需要的VM和操作系統更少。

虛擬機(VM)是將一台服務器轉變為多台服務器的物理硬件的抽象。系統管理程序允許多個VM在單台計算機上運行。每個VM包含操作系統,應用程序,必要的二進制文件和庫的完整副本-占用數十GB。VM也可能啟動緩慢。

k8s與Docker的關系

 

1、K8S是用來管理容器的,pod是k8s的最小操作單位。pod包含各個功能的容器,pod在node運行,master管理node。

2、Docker就是創建容器的工具,可以看作k8s的組件。

優點:

1.部署方便 2.部署安全 3.隔離性 4.快速回滾 5.資源利用率高 6.管理成本低

缺點:

 

1.隔離性 2.性能(數據交互,網絡連接) 3.復雜

Docker中各容器如何通信(推薦使用):

 

docker network來創建一個橋接網絡,在docker run的時候將容器指定到新創建的橋接網絡中,這樣同一橋接網絡中的容器就可以通過互相訪問。 創建網絡: docker network create test-network 啟動容器時,加入創建的網絡: docker run -it --network test-network --network-alias mysql -e MYSQL_ROOT_PASSWORD=123 mysql:5.7 啟動被鏈接的容器: docker run -it --network test-network --network-alias centos centos /bin/bash

Docker安裝

 

要求:lunix內核,要求3.8以上 1.安裝工具包:

2.設置遠程倉庫:

3.安裝docker:

4.啟動docker:

5.查看版本:

 

6.校驗:

 

 (看到這行沒關系,稍等一下就好了)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM