【入門級】Docker基礎介紹(一)
Docker發展
Docker目前有兩個版本:
1.Docker EE:企業版
2.Docker CE:社群版
Open Container Initiative倡議,包含兩個規範,
1.執行時規範:runtime-spec
2.映象規範:image-spec
容納容器映象的站點:
https://hub.docker.com/
Docker架構
Docker是C/S架構,通過https協議通訊。daemon可以監聽在套接字之上,預設只提供unix sock檔案套接字,為了安全起見。它支援ipv4,ipv6,unix sock套接字三種使用者接入方式。
Docker host兩個重要元件:
1.container:容器
2.image:映象
映象來自於registry映象倉庫,預設為docker hub映象倉庫。可下載到本地後共享給上層使用。啟動容器是基於映象而啟動,為映象建立專用的可寫層。
Image儲存在host本地或者公共儲存中,通過http/https載入到本地才能被使用,預設使用的方式為https。
由於docker hub在ufw之外,國內為了實現加速訪問,維護了docker.cn或者可從阿里雲、中國科技大的映象加速。使用者也可以建立自己的私有倉庫。
倉庫:registry
它是一個可提供映象儲存的倉庫,可提供使用者獲取映象的認證,併為當前可用映象作搜尋索引。
一個倉庫有自己專屬的名稱,一般一個倉庫僅存放一個應用的映象,也就是存放同一類應用的不同版本。倉庫名就是應用程式名,比如nginx。不同映象通過新增標籤的方式,來相互區分。因此,倉庫名+標籤才能唯一標識一個映象。如果只給映象名而沒有標籤,則預設訪問最新版本的映象,比如 nginx:stable nginx:latest。
映象(靜態的)和容器(動態的,存在生命週期)的關係,就是程式和程序的關係。restful 風格的物件,支援增刪查改。使用標準的http協議的方法get,post,put等等。
1.image
2.container
3.networks
4.volumes:儲存容器的,一般是外部網路儲存
5.plugins
Docker安裝及使用
依賴基礎環境:
1.64 bits CPU
2.Linux Kernel 3.10 +
3.Linux Kernel cgroups andnamespaces
4.CentOS7 “Extras” repository
5.Docker Daemon systemctl startdocker.service
新增倉庫:
1.編輯daemon.json,新增mirrors
2.Systemctl restart docker
3.Docker version
4.Docker info
原始的命令用法
1.搜尋映象:docker search nginx
圖片來自睿江雲
2.第一種表示頂級倉庫,也就是docker hub官方;第二種表示jwilder賬號建立的倉庫
3.Alpine:體積非常小,提供基礎的應用環境,可安裝在不同的發行版中。測試的時候可以安裝此版本,不過缺少除錯工具。
最好自己編制映象,上傳到docker hub或者建立私有registry
圖片來自睿江雲
4.下載映象:
圖片來自睿江雲
5.刪除映象:
圖片來自睿江雲
6.啟動容器:
圖片來自睿江雲
7.顯示網路
圖片來自睿江雲
安裝docker後,會預設建立docker 橋172.17.0.1.容器會自動nat到橋上以對外通訊。預設會接入到bridge中。
8.啟動busybox容器
圖片來自睿江雲
9.Pid為1是使用者空間的總程序,如果退出sh,則容器消失。
10.檢視容器的資訊:docker inspect b1
11.與容器通訊,類似虛擬機器之間的通訊
圖片來自睿江雲
12.退出容器exit
圖片來自睿江雲
處於停止狀態的容器
13.終止容器:docker kill b1
14.刪除容器:docker rm b1
15.在容器外指定命令:docker exec –it kvstor1 /bin/sh
更多精彩推薦:
人生苦短我用python: eval,exec,compile的使用
使用ctypes呼叫c語言介面+使用virtualenv隔離python環境