03 Docker映象詳解
阿新 • • 發佈:2021-12-21
Docker映象詳解
什麼是映象
映象是一種輕量級、可執行的獨立軟體包,用來打包軟體執行環境和基於執行環境開發的軟體,它包含執行某個軟體所需要的所有內容,包括程式碼,執行時(一個程式在執行或者在被執行的依賴)、庫,環境變數和配置檔案。
Docker映象載入原理
Docker的映象實際上由一層一層的檔案系統組成,這種層級的檔案系統是UnionFS聯合檔案系統。
分層理解
分層的映象
我們去下載一個映象,觀察下方的日誌輸出,可以看到一層一層的在下載
[root@vdevops ~]# docker pull redis Using default tag: latest latest: Pulling from library/redis e5ae68f74026: Already exists 37c4354629da: Pull complete b065b1b1fa0f: Pull complete 6954d19bb2e5: Pull complete 6333f8baaf7c: Pull complete f9772c8a44e7: Pull complete Digest: sha256:2f502d27c3e9b54295f1c591b3970340d02f8a5824402c8179dcd20d4076b796 Status: Downloaded newer image for redis:latest docker.io/library/redis:latest
為啥 映象要採用這種分層結構
最大的好處,莫過於資源共享,比如有多個映象都從相同的Base映象構建而來,那麼宿主機只需在磁碟上保留一份base映象,同時記憶體中只需要載入一份base映象,這樣就可以為所有的容器服務,而且映象的每一層都可以被共享。檢視映象分層的方式可以通過 docker image inspect
commit 映象
如何提交自己的一個映象
docker commit 提交容器成為一個新的副本
docker commit -m="提交的描述資訊" -a="作者" 容器id 目標映象名: [TAG]
#1.啟動一個預設的tomcat #2. 發現這個預設的 tomcat 是沒有webapps 應用的 官方的映象預設 webapps下面是沒有檔案的 #3.自己拷貝 #4. 將操作後的容器 通過 commit 提交 我們以後就是要修改過的映象 [root@vdevops ~]# docker commit -a="syyy" -m="add webapps app" a5538129234d tomcat1.0 sha256:c6e64ee3642d487261c131892dd668fffd484600b3464ff378bde1547dff89ea [root@vdevops ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat1.0 latest c6e64ee3642d 7 seconds ago 684MB tomcat 9.0 3f3cadde9a68 12 days ago 680MB