虛擬化分爲KVM和docker
1.KVM是一個硬件虛擬化,是將真實的硬件通過你計劃引擎hapvisor然後通過統一的訪問接口vitio
2.docker應用容器引擎,虛擬的是操作系統
《1》docker功能特性
1.隔離環境(系統,網絡,文件系統)與應用
2.解決依懶與版本問題
3.易於分發,開箱即用
4.節點與容器快速擴容
5.鏡像製作簡單便捷,管理方便
《Docker應用場景》
1.web應用的自動打包和發佈
2.自動化測試和持續集成,發佈
3.應用服務,如mysql,Redis等,通過Docker實現快速部署
4.ks私有云
先關閉防火牆
永久關閉的是
/etc/sysconfig/selinux
要是用yum裝裝的版本很低,所以先清除了
安裝CE
之後就可以安裝docker-ce了
(yum -y install docker-ce
systemctl start docker 啓動docker
systemctl enable docker 做開機自啓動
docker version 查看dockers版本)
《添加docker國內鏡像源》
因爲默認docker源鏡像下載地址是從國外的很慢,所以改成國內的並且daemon.json這個文件是自己創建的,內容自己添加的
Docker命令
1 查看Docker Hub上公開的centos鏡像
docker search centos(默認給的是latest的標籤最後一次的跟新)
build命令
run命令
個別命令詳解
docker create命令爲指定的鏡像image添加了一個可讀層,構成了一個新的容器。注意,這個容器並沒有運行。
image.png
6. docker start
image.png
Docker start命令爲容器文件系統創建了一個進程隔離空間。注意,每一個容器只能夠有一個進程隔離空間。
7. docker run
image.png
看到這個命令,讀者通常會有一個疑問:docker start和 docker run命令有什麼區別。
image.png
從圖片可以看出,docker run命令先是利用鏡像創建了一個容器,然後運行這個容器。這個命令非常的方便,並且隱藏了兩個命令的細節,但從另一方面來看,這容易讓用戶產生誤解。
題外話:繼續我們之前有關於Git的話題,docker run命令類似於git pull命令。git pull命令就是git fetch 和 git merge兩個命令的組合,同樣的,docker run就是docker create和docker start兩個命令的組合。
- docker ps
image.png
docker ps命令會列出所有運行中的容器。這隱藏了非運行態容器的存在,如果想要找出這些容器,我們需要使用下面這個命令。
docker ps –a
image.png
docker ps –a命令會列出所有的容器,不管是運行的,還是停止的。
9. docker images
image.png
docker images命令會列出了所有頂層top-level鏡像。實際上,在這裏我們沒有辦法區分一個鏡像和一個只讀層,所以我們提出了top-level鏡像。只有創建容器時使用的鏡像或者是直接pull下來的鏡像能被稱爲頂層top-level鏡像,並且每一個頂層鏡像下面都隱藏了多個鏡像層。
docker images –a
image.png
docker images –a命令列出了所有的鏡像,也可以說是列出了所有的可讀層。如果你想要查看某一個image-id下的所有層,可以使用docker history來查看。
10. docker stop
image.png
docker stop命令會向運行中的容器發送一個SIGTERM的信號,然後停止所有的進程。
11. docker kill
image.png
docker kill 命令向所有運行在容器中的進程發送了一個不友好的SIGKILL信號。
12. docker pause
image.png
docker stop和docker kill命令會發送UNIX的信號給運行中的進程,docker pause命令則不一樣,它利用了cgroups的特性將運行中的進程空間暫停。具體的內部原理你可以在這裏找到:https://www.kernel.org/doc/Doc … m.txt,但是這種方式的不足之處在於發送一個SIGTSTP信號對於進程來說不夠簡單易懂,以至於不能夠讓所有進程暫停。
13. docker rm
image.png
docker rm命令會移除構成容器的可讀寫層。注意,這個命令只能對非運行態容器執行。
docker rmi
image.png
docker rmi命令會移除構成鏡像的一個只讀層。你只能夠使用docker rmi來移除最頂層top level layer(也可以說是鏡像),你也可以使用-f參數來強制刪除中間的只讀層。
14. docker commit
image.png
docker commit命令將容器的可讀寫層轉換爲一個只讀層,這樣就把一個容器轉換成了不可變的鏡像。
image.png
15. docker build
image.png
docker build命令非常有趣,它會反覆的執行多個命令。
image.png
我們從上圖可以看到,build命令根據Dockerfile文件中的FROM指令獲取到鏡像,然後重複執行:
1)run(create和start)
2)修改
3)commit
在循環中的每一步都會生成一個新的層,因此許多新的層會被創建。
16. docker exec
image.png
docker exec命令會在運行中的容器執行一個新進程。
17. docker inspect or
image.png
docker inspect命令會提取出容器或者鏡像最頂層的元數據。
18. docker save
image.png
docker save命令會創建一個鏡像的壓縮文件,這個文件能夠在另外一個主機的Docker上使用。和export命令不同,這個命令爲每一個層都保存了它們的元數據。這個命令只能對鏡像生效。
19. docker export
image.png
docker export命令創建一個tar文件,並且移除了元數據和不必要的層,將多個層整合成了一個層,只保存了當前統一視角看到的內容(譯者注:expoxt後的容器再import到Docker中,通過docker images –tree命令只能看到一個鏡像;而save後的鏡像則不同,它能夠看到這個鏡像的歷史鏡像)。
20. docker history
image.png
docker history命令遞歸地輸出指定鏡像的歷史鏡像。