1. docker架構
docker使用客戶端 - 伺服器 (c/s) 架構模式,使用遠端api來管理和建立docker容器。
2. docker核心要素
2.1 客戶端
2.2 docker daemon 即 docker 引擎
2.3 image 映象
2.4 container 容器
2.5 repository 倉庫 (參照docker hub)
其中在使用過程中,我們要理解的核心要素為 映象、容器和倉庫。
映象(image)與容器(container)的關係,類似於物件導向程式設計中類(class)與物件(object)的關係。
通過映象建立容器,就如同通過類建立物件。
2.1 映象(image)
2.1.1 映象的基本概念
2.1.2 映象的組成結構
映象是由許多層的檔案系統疊加構成的,最下面是乙個引導檔案系統的bootfs,第二層是乙個root檔案系統rootfs,root檔案系統通常是某種作業系統,比如centos、ubuntu,在root檔案系統之上又有很多層檔案系統,這些檔案系統疊加在一起,構成docker中的映象;
2.1.3 映象的日常操作
tips: docker映象拉取加速器
通過登入阿里雲ecs後台檢視加速器位址
儲存退出後,重啟docker服務即可
執行映象
docker run -d redis 其中d表示後台執行
然後通過 ps -ef | grep redis 可以查到redis程序
檢視容器的狀態
docker ps
刪除映象
docker rmi redis
注意是rmi,不是rm,rm是刪除容器
2.2 容器
2.2.1 容器的基本概念
容器是從映象建立的執行例項。它可以被啟動、停止、刪除。
每個容器都是相互隔離的、保證安全平台。
可以把它看作乙個簡易版的linux環境,包括root使用者給許可權,程序空間、
使用者空間、網路空間和執行在其中的程式。
docker利用容器來執行應用,映象是唯讀的,容器在啟動的時候建立
一層可寫層作為最上層。
2.2.2 容器的日常操作啟動容器有兩種方式,一種是基於映象新建乙個容器並啟動,另外乙個是將在
終止狀態的容器重新啟動。
通過映象啟動容器
docker run -d -p 6379:6379 redis
已經停止的容器,我們可以通過docker start命令來啟動
開啟容器
docker start 容器id或容器名稱
檢視執行中的容器
docker ps
檢視所有的容器
docker ps -a
進入容器
docker exec -it (容器id或容器名) bash
停止容器
docker stop 容器id或容器名
刪除容器 (刪除前先停止)
docker rm 容器id或容器名
還可以使用
docker inspect 容器id或容器名 檢視容器的更多資訊
關閉所有容器 (q表示quiet,只顯示容器id)
docker stop $(docker ps -q)
刪除全部容器 (a表示all,所有容器資訊,預設只顯示正在執行的)
docker rm $(docker ps -aq)
一條命令實現關閉並刪除所有容器
docker stop $(docker ps -q) & docker rm -f $(docker ps -aq)
因為docker的容器實在太輕量級了,很多時候使用者都是隨時刪除
和新建立容器。
2.3 倉庫(repository)
2.3.1 倉庫的基本概念
倉庫是集中存放映象檔案的場所,有時候會把倉庫和倉庫註冊伺服器
(registry)看作同一事物,並不嚴格區分。實際上,倉庫註冊伺服器上往往
存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤
tag;
倉庫分為公開倉庫(public)和私有倉庫(private)兩種形式;
最大的公開倉庫是 docker hub (存放了
當然,使用者也可以在本地網路內建立乙個私有倉庫。
當使用者建立了自己的映象之後就可以使用push命令將它上傳到公有或私有
倉庫。這樣下次在另外一台機器上使用這個映象的時候,只需要從倉庫pull
下來即可。
注: docker倉庫的概念和git類似,註冊伺服器也類似於github這樣的
託管服務。
2.3.2 倉庫日常操作使用者可通過 docker search 命令來查詢官方倉庫中的映象:
docker search rabbitmq
可以看到返回了很多包含關鍵字的映象,其中包括映象名字、描述、星級
(表示該映象的受歡迎程度)、是否官方建立、是否自動建立;官方的映象說明
是官方專案組建立和維護的,automated資源允許使用者驗證映象的**和內容。
根據是否是官方映象,可將映象資源分為兩類;
一種是類似 centos 這樣的基礎映象,被稱為基礎或根映象。這些基礎映象
由docker公司建立、驗證、支援、提供。這樣的映象往往使用單個單詞作為
名字; 還有一種型別,比如 tianon/centos 映象,是由docker的使用者建立並維
護的,往往帶有使用者名稱字首。可以通過字首user_name/ 來指定使用某個使用者
建立的映象。
storm核心元件
nimbus 負責資源分配和任務排程。supervisor 負責接受nimbus分配的任務,啟動和停止屬於自己管理的worker程序。通過配置檔案設定當前 supervisor 上啟動多少個 worker worker 執行具體處理元件邏輯的程序。worker執行的任務型別只有兩種,一種是spout...
Openstack核心元件
compute 計算 object storage 物件儲存 identity 身份認證 dashboard 儀錶盤 block storage 塊儲存 network 網路 image service 映象服務 compute 類似計算的記憶體 object storage 類似儲存器 ident...
Spring Cloud 核心元件
spring cloud 核心元件,在微服務架構中,分別扮演的角色 1 eureka 各個服務啟動時,eureka client 都會將服務註冊到 eureka server,並且 eureka client 還可以反過來從 eureka server 拉取登錄檔,從而知道其他服務在 2 ribbo...