docker 包括三個基本概念
1.鏡像(Image)
2.容器(Container)
3.倉庫(Repository)
docker的特性:
1.檔案系統隔離:每個程序容器運作在完全獨立的根檔案系統裡。
2.資源隔離:可以使用cgroup為每個程序容器配置設定不同的系統資源,例如CPU和記憶體。
3.網絡隔離:每個程序容器運作在自己的網絡命名空間裡,擁有自己的虛拟接口和IP位址。
4.寫時複制:采用寫時複制方式建立根檔案系統,這讓部署變得極其快捷,并且節省記憶體和硬碟空間。
5.日志記錄:Docker将會收集和記錄每個程序容器的标準流(stdout/stderr/stdin),用于實時檢索或批量檢索。
6.變更管理:容器檔案系統的變更可以送出到新的映像中,并可重複使用以建立更多的容器。無需使用模闆或手動配置。
7.互動式Shell:Docker可以配置設定一個虛拟終端并關聯到任何容器的标準輸入上,例如運作一個一次性互動shell。
docker安裝與啟動
- ##建構一個docker 鏡像
docker build -t cdphere/mysql:5.6 .
- ##檢視有哪些鏡像檔案
docker images
- ##運作一個鏡像
docker run -d -p 3306:3306 --name dbserver csphere/mysql:5.6
-P 大寫的p 指定的端口 後面重新開機宿主主機的端口與容器暴露的端口會變化
docker run -d -p 3306:3306 --name dbserver -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql csphere/mysql:5.6
- ##檢視所有狀态的容器
docker ps -a
- ##進入docker容器中(互動式)
docker exec -it dbserver /bin/sh
Docker attach可以attach到一個已經運作的容器的stdin,然後進行指令執行的動作。
但是需要注意的是,如果從這個stdin中exit,會導緻容器的停止。
- ##查删除鏡像
docker rm -f dbserver
- ##停止鏡像,後面這個是id 可以不用敲全,找的到就可以了
docker stop d03
- ##ENTRYPOINT/CMD差別
ENTRYPOINT/CMD都隻能在檔案中存在一次,并且最後一個生效 多個存在,隻有最後一個生效,其它無效!
需要初始化運作多個指令,彼此之間可以使用 && 隔開,但最後一個須要為無限運作的指令,需切記!
ENTRYPOINT,表示鏡像在初始化時需要執行的指令,不可被重寫覆寫,需謹記 但是使用--entrypoint 也可以覆寫
CMD,表示鏡像運作預設參數,可被重寫覆寫
停止所有的container,這樣才能夠删除其中的images:
docker stop $(docker ps -a -q)
如果想要删除所有container的話再加一個指令:
docker rm $(docker ps -a -q)
參考資料:
http://git.oschina.net/itmuch/spring-cloud-book
版權聲明:本文為CSDN部落客「weixin_34313182」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_34313182/article/details/92088269