Docker

虛擬化分爲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兩個命令的組合。
  1. 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命令遞歸地輸出指定鏡像的歷史鏡像。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章