国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站開發(fā)專業(yè)有哪些營(yíng)銷推廣文案

網(wǎng)站開發(fā)專業(yè)有哪些,營(yíng)銷推廣文案,網(wǎng)絡(luò)公司怎么優(yōu)化網(wǎng)站,做請(qǐng)柬網(wǎng)站前幾篇文章中,重點(diǎn)講解了如何實(shí)現(xiàn)構(gòu)建容器,需要回顧的小伙伴可以看以下文章: 《Docker實(shí)戰(zhàn)06|深入剖析Docker Run命令》《Docker實(shí)戰(zhàn)07|Docker增加容器資源限制》《Docker實(shí)戰(zhàn)08|Docker管道及環(huán)境變量識(shí)別…

前幾篇文章中,重點(diǎn)講解了如何實(shí)現(xiàn)構(gòu)建容器,需要回顧的小伙伴可以看以下文章:

  • 《Docker實(shí)戰(zhàn)06|深入剖析Docker Run命令》
  • 《Docker實(shí)戰(zhàn)07|Docker增加容器資源限制》
  • 《Docker實(shí)戰(zhàn)08|Docker管道及環(huán)境變量識(shí)別》

以上三篇主要實(shí)現(xiàn)了Docker Run命令、Docker如何對(duì)容器資源進(jìn)行限制以及Docker不同進(jìn)程之間是如何進(jìn)行通信的底層原理與實(shí)現(xiàn)

接下來(lái)的時(shí)間會(huì)和大家一起學(xué)習(xí)Docker是如何構(gòu)造鏡像的。

使用busybox創(chuàng)建容器

獲取代碼

git clone https://gitee.com/mjreams/docker.git

busybox

首先使用一個(gè)最精簡(jiǎn)的鏡像——busybox。busybox是一個(gè)集合了非常多UNIX工具的箱子,他可以提供非常多在UNIX環(huán)境下經(jīng)常使用的命令,可以說busybox提供了一個(gè)非常完整而且小巧的系統(tǒng)。 本文中也會(huì)先使用它來(lái)作為第一個(gè)容器內(nèi)運(yùn)行的文件系統(tǒng)。

獲得busybox文件系統(tǒng)的rootfs很簡(jiǎn)單,可以使用docker export將一個(gè)鏡像打成一個(gè)tar包。

docker pull busybox
docker run -d busybox top -b
docker export -o busybox.tar 6e6415edd69c(容器ID)
mkdir busybox
tar -xvf ./busybox.tar -C busybox/
root@iZ2ze:~/busybox# ls
bin  dev  etc  home  lib  lib64  proc  root  sys  tmp  usr  var

pivot_root

pivot_root是一個(gè)系統(tǒng)調(diào)用,主要功能是去改變當(dāng)前的root文件系統(tǒng)。pivot_root可以將當(dāng)前進(jìn)程的root文件系統(tǒng)移動(dòng)到put_old文件夾中,然后使new_root成為新的root文件系統(tǒng)。new_root和put_old必須不能同時(shí)存在當(dāng)前root的同一個(gè)文件系統(tǒng)中。pivot_root和chroot的主要區(qū)別是,pivot_root是把整個(gè)系統(tǒng)切換到一個(gè)新的root目錄,而移除對(duì)之前root文件系統(tǒng)的依賴,這樣你就能夠umount原先的root文件系統(tǒng)。而chroot是針對(duì)某個(gè)進(jìn)程,系統(tǒng)的其他部分依舊運(yùn)行于老的root目錄中。

下面,一起把代碼來(lái)實(shí)現(xiàn)一下。

container/init.go


有了這個(gè)函數(shù)后,就可以在init容器進(jìn)程的時(shí)候,進(jìn)行一系列的mount操作 。


其中,tmpfs是一種基于內(nèi)存的文件系統(tǒng),可以使用RAM或swap分區(qū)來(lái)存儲(chǔ)。下面把下載好的busybox放到/root/busybox宿主機(jī)的目錄下,使用cmd.Dir="/root/busybox"這個(gè)方法給創(chuàng)建出來(lái)的子進(jìn)程指定容器初始化后的工作目錄,然后就會(huì)運(yùn)行前面講到的那些進(jìn)程,掛載rootfs然后把當(dāng)前目錄虛擬成根目錄。


將此處修改為cmd.Dir="/root/busybox"
下面運(yùn)行一下來(lái)看看效果。

我此處使用的是容器鏡像的名字進(jìn)行掛載。你如果修改成/root/busybox,則此處顯示/root/busybox。

使用AUFS包裝busybox

Docker在使用鏡像啟動(dòng)一個(gè)容器時(shí),會(huì)新建2個(gè)layer: writelayer和container-init layer。write layer是容器唯一的可讀寫層:而container-init layer是為容器新建的只讀層,用來(lái)存儲(chǔ)容器啟動(dòng)時(shí)傳入的系統(tǒng)信息(前面也提到過,在實(shí)際的場(chǎng)景下,它們并不是以write layer和container-init layer命名的)。最后把write layer、container叮iit layer和相關(guān)鏡像的layers都mount到一個(gè)mnt目錄下,然后把這個(gè)mnt目錄作為容器啟動(dòng)的根目錄。

在上面己經(jīng)實(shí)現(xiàn)了使用宿主機(jī)/root/busybox目錄作為文件的根目錄,但在容器內(nèi)對(duì)文件的操作仍然會(huì)直接影響到宿主機(jī)的/root/busybox目錄。本節(jié)要進(jìn)一步進(jìn)行容器和鏡像隔離,實(shí)現(xiàn)在容器中進(jìn)行的操作不會(huì)對(duì)鏡像產(chǎn)生任何影響的功能。

container/volume.go

  • CreateReadOnlyLayer函數(shù)新建busybox文件夾,將busybox.tar 解壓到busybox目錄下,作為容器的只讀層。
  • CreateWriteLayer函數(shù)創(chuàng)建了一個(gè)名為writeLayer的文件夾,作為容器唯一的可寫層。
  • 在CreateMountPoint函數(shù)中,首先創(chuàng)建了mnt文件夾,作為掛載點(diǎn),然后把writeLayer目錄和busybox目錄mount到mnt目錄下。

最后,在NewParentProcess函數(shù)中將容器使用的宿主機(jī)目錄/root/busybox 替換成/root/mnt。


此處將busybox.tar解壓到busybox目錄下,作為容器的只讀層。

接下來(lái),在NewParentProcess函數(shù)中將容器使用的宿主機(jī)目錄/root/busybox替換成/root/mnt。這樣,使用 AUFS 系統(tǒng)啟動(dòng)容器的代碼就完成了。


Docker會(huì)在刪除容器的時(shí)候,把容器對(duì)應(yīng)的Write Layer和Container-init Layer刪除,而保留鏡像所有的內(nèi)容。本節(jié)中,在容器退出的時(shí)候會(huì)刪除Write Layer。DeleteWorkSpace函數(shù),包括DeleteMountPoint和DeleteWrite Layer。

  • 首先,在 DeleteMountPoint 函數(shù)中 umountmnt 目錄 。
  • 然后,刪除 mnt 目錄。
  • 最后,在 DeleteWriteLayer 函數(shù)中刪除 writeLayer 文件夾。這樣容器對(duì)文件系統(tǒng)的更改就都己經(jīng)抹去了。

container/volume.go

整體流程如下:

測(cè)試

啟動(dòng)一個(gè)容器

./mydocker run -ti sh
sh-5.1# ls /root
bash  busybox  busybox.tar  mnt  writeLayer

在容器中新建一個(gè)文件夾。


新建一個(gè)宿主機(jī)窗口,查看/root/mnt目錄。


可以看到多了一個(gè)studydocker文件夾。

在容器中執(zhí)行exit退出容器,,然后再次查看宿主機(jī)上的/root/mnt文件夾內(nèi)容。發(fā)現(xiàn)已經(jīng)沒有了剛才的容器。

http://aloenet.com.cn/news/47274.html

相關(guān)文章:

  • 中企業(yè)網(wǎng)站建設(shè)哪里做網(wǎng)站便宜
  • 楚雄微網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化分析工具
  • 90設(shè)計(jì)網(wǎng)站怎么樣google廣告投放技巧
  • 如何在手機(jī)上做網(wǎng)站搜索引擎調(diào)價(jià)工具哪個(gè)好
  • 成都網(wǎng)站制作建設(shè)電商網(wǎng)站建設(shè)哪家好
  • 自定義網(wǎng)站主頁(yè)設(shè)計(jì)今日頭條新聞最新疫情
  • 網(wǎng)站建設(shè)編程四川seo推廣
  • 哈爾濱最好的網(wǎng)站建設(shè)公司免費(fèi)注冊(cè)域名網(wǎng)站
  • 襄陽(yáng)做網(wǎng)站 優(yōu)幫云seo軟件優(yōu)化工具軟件
  • dz網(wǎng)站建設(shè)數(shù)據(jù)分析平臺(tái)
  • 做股東變更要上哪個(gè)網(wǎng)站獲客渠道有哪些
  • 信息產(chǎn)業(yè)部網(wǎng)站備案查詢新聞?lì)^條最新消息摘抄
  • 廣州嘉怡服飾有限公司網(wǎng)站建設(shè)請(qǐng)你設(shè)計(jì)一個(gè)網(wǎng)絡(luò)營(yíng)銷方案
  • 那些網(wǎng)站建設(shè)的好登錄百度app
  • wordpress網(wǎng)站主題插件網(wǎng)站推廣方式
  • 怎樣免費(fèi)做網(wǎng)站搜索引擎排名影響因素有哪些
  • 網(wǎng)站建設(shè)方案報(bào)價(jià)百度seo公司報(bào)價(jià)
  • flash做網(wǎng)站網(wǎng)站查詢?nèi)肟?/a>
  • 北海市做網(wǎng)站的公司網(wǎng)絡(luò)推廣公司網(wǎng)站
  • 怎么做離線網(wǎng)站網(wǎng)站注冊(cè)要多少錢
  • 泉州專門做網(wǎng)站品牌策劃書
  • 東莞h5網(wǎng)站建設(shè)宣傳推廣策略
  • 泉州企業(yè)免費(fèi)建站雞西seo
  • 手機(jī)怎么做網(wǎng)站賣東西營(yíng)銷技巧美劇
  • 濟(jì)南免費(fèi)網(wǎng)站建設(shè)優(yōu)化網(wǎng)站管理
  • 響應(yīng)式網(wǎng)站是什么軟件做的app注冊(cè)拉新平臺(tái)
  • 企業(yè)網(wǎng)站建設(shè)哪家便宜游戲推廣渠道
  • 學(xué)院網(wǎng)站建設(shè)服務(wù)宗旨電商平臺(tái)排名
  • 南寧網(wǎng)絡(luò)推廣工作網(wǎng)絡(luò)優(yōu)化seo薪酬
  • 景安網(wǎng)站備案的服務(wù)碼韓國(guó)熱搜榜