Docker鏡像


docker鏡像123?

額,由於沒有實驗環境,沒有親手實踐,因此理解可能有不對的地方。
反正也是學習筆記,以后再修改吧...

docker的鏡像跟virtualbox的鏡像不一樣。在虛擬機中,鏡像是一個系統的完整體,包括了系統、用戶在上面做的操作等等。而在docker中,鏡像是一組文件的疊加。

解釋下,玩過PS的應該都知道圖層的概念。一個圖片由不同的圖層疊加混合,最終形成一張完美的照片。其中底層可能原始圖片,然后蓋上一層黃色,再覆蓋掉不想要的部分,或者添加點點綴,通過這種圖層的方式,可以方便的合並出想要的圖片。在docker中,先通過啟動文件啟動一個基礎的文件,然后在它上面加載文件系統,同時加載其他的文件。

舉個例子,我想要搭建一個apache服務器的鏡像,可能會按照下面的步驟:

  • 加載啟動文件
  • 加載文件系統,如ubuntu或者centos或者fedora
  • 加載emacs
  • 加載apache

就像下面的圖展示的一樣:

加載完這些鏡像后,會創建一個讀寫層。之前加載的鏡像都是只讀的,所有的修改操作都會放在這個讀寫層中。如果修改的是下面只讀層的內容,則會拷貝到讀寫層再修改,這樣就保證了層的讀寫分離

docker鏡像相關的命令

查看docker鏡像

sudo docker images 

從鏡像網站上拉取鏡像:

sudo docker pull fedora:20

查找鏡像:

sudo docker search puppet

推送鏡像:

sudo docker push jamtur01/static_web

刪除鏡像:

sudo docker rmi jamtur01/static_web

通過dockerfile創建鏡像:

touch Dockerfile
sudo docker build =t="xxx/xxx:xxx"

查詢docker歷史:

sudo docker history 2dfshfjksd

dockerfile中的命令

1 CMD:啟動時運行的命令
2 ENTRYPOINT:不會被run的指令覆蓋。
3 WORKERID:創建新的鏡像,設置工作目錄
4 ENV:設置環境變量
5 USER:指定運行的用戶
6 VOLUME:向鏡像添加卷
7 ADD:把文件夾中的內容復制到鏡像中
8 COPY:與ADD類似,但是不會解壓或者提取
9 ONBUILD:添加觸發器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM