Docker是一個開源的應用容器引擎,可以輕鬆的為任何應用建立一個輕量級、可移植的、自給自足的容器。Docker類似於集裝箱,各式各樣的貨物,經過集裝箱的標準化進行託管,而集裝箱和集裝箱之間沒有影響。也就是說,Docker平臺就是一個軟體集裝箱化平臺,這就意味著我們自己可以構建應用程式,將其依賴關係一起打包到一個容器中,然後這容器就很容易運送到其他的機器上進行執行,而且非常易於裝載、複製、移除,非常適合軟體彈性架構。
docker核心概念:
映象image:容器的模板,透過映象可以建立容器。
容器container:輕量級的執行沙箱,裡面包含著程式和程式執行所附帶的執行環境(使用者許可權、程序空間、使用者空間、網路等)。容器是從映象建立的應用執行例項。
倉庫Repositiry:存放映象的地方,docker官方倉庫docker hub
容器引擎:docker-ce 社群版 docker-ee 企業版
安裝Docker
https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.57e31b11xdEX47
docker version --檢視當前docker版本
OpenVz官方映象站:https://wiki.openvz.org/Download/template/precreated
映象命令:
建立:
docker pull 倉庫註冊地址/倉庫名
-a --獲取倉庫中所有映象
docker pull ubuntu:18.04 --獲取映象到本地(倉庫名:標籤)如果不新增標籤,則獲取最新版
自定義建立映象:
docker commit -m "註釋" -a "作者資訊" 容器ID 新倉庫名:標籤 --基於容器建立一個新的映象
示例:docker commit -m "add new file" -a "bert" 3dcd bert:1.0 --基於容器ID:3dcd建立一個新的映象bert:1.0
docker import 模板(由官方提供模板)檔案路徑 name:tag --基於本地匯入映象
基於dockerfile建立:寫一個指令碼dockerfile檔案,利用一個指定的父映象,對父映象進行操作描述
存出映象:docker save -o 儲存後的檔案路徑.格式 映象ID\name:tag
載入:docker load -i 檔案需要載入的檔案路徑
檢視:
docker image ls --檢視當前獲取完成的映象-使用倉庫名、標籤、映象ID確定一個映象
-a --列出所有映象
-f --過濾 例項: -f dangling=true --只顯示沒有被使用過的映象
-q --僅輸出ID資訊,預設為否
docker image inspect ubuntu:18.04 --檢視映象詳細資訊
docker image inspect f9a80a55f492 (64個16進位制,256位元) --檢視映象詳細資訊
docker history ubuntu:18.04 --檢視映象歷史封裝內容
docker history f9a80a55f492
docker tag ubuntu:latest myubuntu:1.1 --自定義倉庫名和標籤(不會再佔用空間大小)
管理:
docker search [option] --搜尋含有關鍵字的倉庫或映象
docker search --filter=is-official=true nginx
docker rmi 映象ID\name:id --刪除映象
docker image rm 映象ID\name:id
--刪除時如果映象有對應執行容器,則映象無法刪除(可以使用-f強制執行)
--如果映象存在多個連結映象,則刪除時無法同時刪除多個映象(可以使用-f強制執行)
docker image prune --清理映象(批次的對映象進行刪除)
-a --刪除所有無用的映象
--filter --透過過濾相關條件
-f --強制清理,不進行提示
容器命令:
建立:
docker create 映象ID\name:id --建立容器(建立出來的容器預設為關閉的)
-t --分配一個偽終端
-i --保持標準輸入開啟
-d --是否在後臺執行容器(保持守護程序)
docker create -it ubuntu:18.04 --建立容器
docker run 映象ID\name:id --建立容器()
工作邏輯:
1、檢查本地是否有映象,沒有則自動去公共倉庫下載
2、利用映象建立一個容器,並啟動該容器
3、分配一個檔案系統給容器,並在只讀映象層外掛載讀寫層
4、從宿主機配置的網橋介面中橋接一個虛擬介面到容器中
5、從網橋地址池配置一個IP地址給容器
6、執行使用者指定的應用程式
7、執行完成後容器自動終止
檢視:
docker ps -a --檢視當前所有容器(包括關閉的)
管理:
docker start 容器ID --啟動容器
docker rm 容器ID --刪除容器
docker attach 容器ID --進入容器操作(exit退出容器程序)
docker stop 容器ID --關閉容器