Docker | 入門篇 | (二)
--昨夜西風凋碧樹,獨上高樓,望盡天涯路
-
Docker架構
Docker的核心元件包括:
1.Docker客戶端:Client
2.Docker伺服器:Docker daemon
3.Docker映象:Image
4.Registry
5.Docker容器:Container
Docker架構圖如下:
Docker採用Client/Server架構。客戶端向伺服器傳送請求,伺服器負責構建、執行和分發容器。客戶端和服務端可以執行 在同一個Host上,客戶端也可以通過socket或REST API與遠端伺服器通訊。
-
Docker客戶端
常用的docker客戶端是docker命令。通過docker命令我們可以方便的在host上構建和執行容器(也可以使用REST API與伺服器通訊)
-
Docker服務端
Docker daemon是伺服器元件,以linux後臺服務的方式執行,檢視執行狀態:
Docker daemon執行在Docker host上,負責建立、執行、監控容器,構建、儲存映象。預設配置下,Docker daemon只能相應來自本地Host的客戶端請求。如果允許遠端客戶端請求,需要在配置檔案中開啟TCP監聽:
進入到/etc/systemd/system/multi-user.target.wants/docker.service, 編輯配置檔案docker.service,在環境變數ExecStart後面新增 -H tcp://0.0.0.0,允許來自任意IP的客戶端連線:
重啟Docker dameon:
通過-H加伺服器ip地址可與遠端伺服器通訊(info用於檢視Docker伺服器的資訊):
-
Docker映象
Docker映象可以看作是隻讀模板,通過映象來建立Docker容器。
映象的生成方法有很多種:
1.從零開始直接建立一個映象
2.下載建立好的映象
3.在現有映象的基礎上建立映象
-
Docker容器
Docker容器是Docker映象執行的例項。
使用者可以通過CLI(Docker)或者API啟動、停止、移動或者刪除容器(對於應用軟體,映象是軟體生命週期的構建和打包階段,容器則是啟動和執行階段)。
-
Registry
Registry是存放Docker映象的倉庫,Registry分為私有和公有兩種。
Docker Hub是預設的Registry,由Docker公司維護,上面存放數以萬計的映象,使用者可以自由下載和使用
出於安全使用者也可以構建自己的私有倉庫
-
例
執行一個httpd容器:
docker run表示執行一個容器,-d引數表示後臺執行, -p引數表示對映容器的80埠到主機的80埠,httpd是映象名稱
如果映象在本地不存在,如果映象在本地不存在,Docker daemon會先從Docker Hub下在映象,再執行(也可以先docker pull 映象 再通過docker run執行映象)
docker images檢視映象已經下載到本地:
docker ps或者docker container ls顯示正在執行的容器: