91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker鏡像的commit操作是什么

發布時間:2022-04-14 10:19:32 來源:億速云 閱讀:250 作者:iii 欄目:開發技術

這篇文章主要介紹“Docker鏡像的commit操作是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Docker鏡像的commit操作是什么”文章能幫助大家解決問題。

Docker 鏡像是什么

 UnionFS(聯合文件系統)

UnionFS(聯合文件系統):Union文件系統是一種分層、輕量級并且高性能的文件系統,它支持對文件系統的修改作為一次提交來一層層的疊加,同時可以將不同目錄掛載到同一個虛擬文件系統下(unite several directories into a single virtual filesystem)。Union文件系統是Docker 鏡像的基礎。鏡像可以通過分層來進行繼承,基于基礎鏡像(沒有父鏡像),可以制作各種具體的應用鏡像。

特性:一次同時加載多個文件系統,但從外面看起來,只能看到一個文件系統,聯合加載會把各層文件系統疊加起來,這樣最終的文件系統會包含所有底層的文件和目錄。

Docker 鏡像加載原理

Docker鏡像的commit操作是什么

docker 的鏡像實際上是由一層層的文件系統組成,這種層級的文件系統 UnionFS。

bootfs(boot file system)主要包含 bootloader 和 kernel,bootloader 主要是引導加載 kernel,Linux 剛啟動時會加載 bootfs 文件系統,在 Docker 鏡像的最底層是 botfs。這一層與我們典型的 Linux/Unix 系統是一樣的,包含 boot 加載器和內核。當 boot 加載完成之后整個內核就都在內存中了,此時內存的使用權已由 bootfs 轉交給內核,此時系統也會卸載 bootfs。

rootfs (root file system),在 bootfs 之上,包含的就是典型 Linux 系統中的 /dev,/proc,/bin,/etc 等標準目錄和文件。rootfs 就是各種不同的操作系統發行版,比如 Ubuntu,Centos 等等。

對于一個精簡的OS,rootfs 可以很小,只需要包括最基本的命令、工具和程序庫就可以了,因此底層直接用 Host 的kernel,自己只需要提供 rootfs 就行了。由此可見對于不同的 Linux 發行版嗎,bootfs 基本是一致的,rootfs 會有差別因此不同的發行版本可以公用bootfs。

分層的鏡像

Docker鏡像的commit操作是什么

我們以 tomcat 鏡像為例,在下載的過層中可以看到 docker 的鏡像好像是在一層一層的在下載。

Docker鏡像的commit操作是什么

  • 為什么 Docker 鏡像要采用這種分層結構

最大的好處就是-共享資源
比如:有多個鏡像都是從相同的 base 鏡像構建而來,那么宿主機只需要在磁盤上保存一份 base 鏡像,同時內存中也只需要加載一份 base 鏡像,就可以為所有容器服務了。而且鏡像的每一層都可以被共享。

  • 特點

Docker 鏡像都是只讀的,當容器啟動時,一個新的可寫層被加載到鏡像的頂部。這一層通常被稱作“容器層”,“容器層”之下的都叫做“鏡像層”。

Docker 鏡像 commit 操作

docker commit 能做什么

docker commit
提交容器副本使之成為一個新的鏡像docker

commit 格式

docker commit -m='提交的描述信息' -a='作者' 容器ID 新鏡像名:標簽

 案例演示

下載一個 tomcat 鏡像到本地并成功運行

[root@docker ~]# docker pull tomcat
[root@docker ~]# docker run -d -p 8888:8080 tomcat

進入容器并在 / 目錄下創建文件 test,退出容器

[root@docker ~]# docker exec -it $(docker ps -q) bash
root@4004f1503c75:/usr/local/tomcat# touch /test
root@4004f1503c75:/usr/local/tomcat# exit

當前正在運行的 tomcat 容器,根目錄下新創建了一個 test 文件,以它為模板 commit 一個根目錄下有 test 文件的 tomcat 鏡像

#新鏡像創建成功
	[root@docker ~]# docker commit -a="test" -m="test" $(docker ps -q) tomcat:test
	sha256:1dcb7604643bb29e47420f7a4d40582564a89df59fd3ae4602e72a84f27af9db
	[root@docker ~]# docker images
	REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
	tomcat              test                1dcb7604643b        About a minute ago   649 MB
	tocmat              latest              625b734f984e        41 hours ago         648 MB

啟動新鏡像 tomcat:test,查看 / 目錄下是否具有 test 文件

[root@docker ~]# docker run -d  tomcat:test
[root@docker ~]# docker exec -it ec738896bc67 ls /test
/test

關于“Docker鏡像的commit操作是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

哈巴河县| 霍林郭勒市| 平昌县| 德惠市| 巴彦淖尔市| 如皋市| 岐山县| 新民市| 临湘市| 黑龙江省| 石柱| 保靖县| 右玉县| 拉孜县| 无为县| 楚雄市| 搜索| 修武县| 察雅县| 安平县| 丹江口市| 错那县| 嘉峪关市| 宣城市| 宁安市| 通山县| 万源市| 新营市| 鹿邑县| 桃江县| 长沙县| 贵溪市| 图们市| 鄂州市| 鸡西市| 淮阳县| 乌拉特前旗| 武冈市| 集安市| 桂阳县| 福清市|