
文章插圖
分層下載,鏡像是什么鏡像就是一個輕量的、獨立的軟件包 。用來打包運行環境和基于運行環境開發的軟件 。它包含軟件運行所需的所有內容(包括代碼、運行時、庫、環境變量、配置文件)docker image的核心: 聯合文件系統
所有的應用,打包docker鏡像,就可以跑起來 。
如何得到鏡像
- 從遠程倉庫下載
- 拷貝他人的鏡像(鏡像打包生成tar壓縮包,可以發送壓縮包給別人 。)
- 自己制作一個鏡像(
DockerFile)
UnionFS(聯合文件系統)
UnionFS(聯合文件系統)是一種分層、輕量、高性能的文件系統 。它支持對文件系統的修改作為一次提交,來一層一層的疊加,同時可以將不同目錄掛載到同一個虛擬文件系統下 。
- 聯合文件系統是
Docker鏡像的基礎,鏡像可以通過分層來進行繼承,基于基礎鏡像(沒有父鏡像)可以制作各種具體的應用鏡像 。
一次同時加載多個文件系統,但從外面看起來,只能看到一個文件系統,聯合加載會把各層文件系統疊加起來,這樣最終的文件系統會包含所有底層的文件和目錄 。
Docker鏡像加載原理:
Docker的鏡像實際上由一層一層的文件系統組成,- bootfs(boot file syatem)
- rootfs(root file system),
Ubuntu,Centos
文章插圖
分層理解
- 查看鏡像詳細信息
docker inspect 鏡像id
文章插圖
- Layers

文章插圖
特點:
docker鏡像都是只讀的,當容器啟動時,一個新的可寫層被加到鏡像的頂部 。
這一層就是我們通常說的容器層,容器之下的都叫鏡像層 。

文章插圖
commit鏡像(提交一個自己的鏡像)
docker commit #提交容器成為一個新的副本#命令和git原理類似docker commit -m='提交的描述信息' -a='作者' 容器id 目標鏡像名:[ tag ]下載的tomcat鏡像是閹割版,啟動之后404,因為webapps下面沒有ROOT文件夾,所以這里嘗試做一個自己的可正常訪問tomcat主頁的鏡像 。(由于鏡像只讀,啟動鏡像之后會在鏡像層之上生成一個容器層,在tomcat容器層做修改,再把鏡像層和修改過后的容器層整體打包成一個新的個人鏡像)1、下載tomcat鏡像
docker pull tomcat2、啟動tomcat鏡像docker run -it -p 3355:8080 tomcat /bin/bash3、瀏覽器訪問4044、進入容器,復制webapps.dist目錄下的文件到webapps目錄下5、提交鏡像docker commit -m="edit webapps dir" -a="xiao" 容器id tomcat02:1.0
文章插圖
6、查看提交的鏡像信息
docker inspect [imageId]
經驗總結擴展閱讀
- useEffect 和 useLayoutEffect淺析
- docker搭建個人云盤可道云kodbox
- 18-基于CentOS7搭建RabbitMQ3.10.7集群鏡像隊列+HaProxy+Keepalived高可用架構
- frp服務利用云主機docker服務實現Windows遠程連接
- 企業運維 | MySQL關系型數據庫在Docker與Kubernetes容器環境中快速搭建部署主從實踐
- mac通過docker一鍵部署Jenkins
- Docker MySql 查看版本的三種方法
- 手把手教你玩轉 Gitea|使用 Docker 安裝 Gitea
- Docker搭建kafka及監控
- Docker容器獲取宿主機信息
