国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

docker基礎(chǔ)3——制作鏡像(基于容器)

這篇具有很好參考價值的文章主要介紹了docker基礎(chǔ)3——制作鏡像(基于容器)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、基本了解

  • 鏡像可以理解為應用程序的集裝箱,而docker用來裝卸集裝箱。
  • docker鏡像含有啟動容器所需要的文件系統(tǒng)及其內(nèi)容,所以鏡像是用于創(chuàng)建并啟動容器。

1.1 鏡像結(jié)構(gòu)

  1. docker鏡像采用分層構(gòu)建機制,最底層為bootfs,其上為rootfs。
    • bootfs:用于系統(tǒng)引導的文件系統(tǒng),包括bootloader和kernel,容器啟動完成后會被卸載以節(jié)約內(nèi)存資源。
    • rootfs:位于bootfs之上,表現(xiàn)為docker容器的根文件系統(tǒng)。
  2. 傳統(tǒng)模式中,系統(tǒng)啟動之時,內(nèi)核掛載rootfs會首先將其掛載為“只讀”模式,完整性自檢完成后將其重新掛載為讀寫模式。
  3. docker中,rootfs由內(nèi)核掛載為“只讀”模式,而后通過“聯(lián)合掛載”技術(shù)額外掛載一個“可寫”層。
  4. 當刪除容器時,這個容器自有的“可寫”層會一起被刪除。
    docker鏡像制作,docker,docker,java,容器,運維

docker鏡像層:

  • 位于下層的鏡像稱為父鏡像(parrent image),最底層的稱為基礎(chǔ)鏡像(base image)。
  • 最上層為“可讀寫”層,其下的均為“只讀”層。
    docker鏡像制作,docker,docker,java,容器,運維

1.2 docker存儲驅(qū)動

  • docker提供多種存儲驅(qū)動來實現(xiàn)不同的方式存儲鏡像,比如 AUFS、OverlayFS、Devicemapper、Btrfs、VFS。
  • OverlayFS是文件級存儲,Device mapper是塊級存儲。塊級存儲是直接訪問邏輯盤,適合IO密集場景;對于程序內(nèi)部復雜,大并發(fā)但少IO的場景,Overlay的性能相對要強一些。

1.2.1 AUFS

  1. AUFS(AnotherUnionFS)是一種Union FS,是文件級的存儲驅(qū)動,是一個能透明覆蓋一個或多個現(xiàn)有文件系統(tǒng)的層狀文件系統(tǒng),把多層合并成文件系統(tǒng)的單層表示。
  2. 這種文件系統(tǒng)可以一層一層地疊加修改文件,只有最上層的文件系統(tǒng)可寫,底下層都是只讀的。
  3. 當需要修改一個文件時,AUFS創(chuàng)建該文件的一個副本,CoW將文件從只讀層復制到可寫層進行修改,結(jié)果也保存在可寫層。
  4. 在Docker中,底下的只讀層是image,可寫層是Container。
  5. 目前已基本被淘汰。

1.2.2 OverlayFS

  1. Overlay是Linux內(nèi)核3.18后支持的,也是一種Union FS,和AUFS的多層不同的是Overlay只有兩層:一個upper文件系統(tǒng)和一個lower文件系統(tǒng),分別代表Docker的鏡像層和容器層。
  2. 當需要修改一個文件時,CoW將文件從只讀的lower復制到可寫的upper進行修改,結(jié)果也保存在upper層。
  3. 在Docker中,底下的只讀層是image,可寫層就是Container,目前最新的OverlayFS為Overlay2。

1.2.3 DeviceMapper

  1. Device mapper是Linux內(nèi)核2.6.9后支持的,提供的一種從邏輯設備到物理設備的映射框架機制,是塊級存儲,所有操作都是直接對塊進行操作,而不是文件。
  2. Device mapper驅(qū)動會先在塊設備上創(chuàng)建一個資源池,然后在資源池上創(chuàng)建一個帶有文件系統(tǒng)的基本設備,所有鏡像都是這個基本設備的快照,而容器則是鏡像的快照。所以在容器里看到文件系統(tǒng)是資源池上基本設備的文件系統(tǒng)的快照,并沒有為容器分配空間。
  3. 當要寫入一個新文件時,在容器的鏡像內(nèi)為其分配新的塊并寫入數(shù)據(jù),這個叫用時分配。當要修改已有文件時,再使用CoW為容器快照分配塊空間,將要修改的數(shù)據(jù)復制到在容器快照中新的塊里再進行修改。

1.3 鏡像倉庫

  1. 啟動容器時,docker daemon守護進程會試圖從服務器本地獲取相關(guān)鏡像,本地鏡像不存在時,再從Registry中下載該鏡像并保存到本地。
  2. Registry用于保存docker鏡像,包括鏡像的層次結(jié)構(gòu)和元數(shù)據(jù)。用戶可以自建Registry,亦可使用官方的Docker Hub。
    docker鏡像制作,docker,docker,java,容器,運維

docker registry分類:

  1. Sponsor Registry:第三方的Registry,供客戶和Docker社區(qū)使用。
  2. Mirror Registry:第三方的Registry,只讓客戶使用。
  3. Vendor Registry:由發(fā)布docker鏡像的供應商提供的registry。
  4. Private Registry:通過設有防火墻和額外的安全層的私有實體提供的registry

docker registry組成:

  1. Repository:
    • 由某特定的docker鏡像的所有迭代版本組成的鏡像倉庫。
    • 一個Registry中可以存在多個Repository。
    • Repository可分為“頂層倉庫”和“用戶倉庫”。頂層倉庫基于各個官方發(fā)布的,建議使用。
    • 用戶倉庫名稱格式為“用戶名/倉庫名”。
    • 每個倉庫可包含多個Tag(標簽),每個標簽對應一個鏡像。
  2. Index:
    • 維護用戶帳戶、鏡像的檢驗以及公共命名空間的信息。
    • 相當于為Registry提供了一個完成用戶認證等功能的檢索接口

二、鏡像制作

鏡像的生成途徑:

  1. Dockerfile。
  2. 基于容器制作。
  3. Docker Hub automated builds
    docker鏡像制作,docker,docker,java,容器,運維

docker鏡像的制作:

  1. 多數(shù)情況下,我們做鏡像是基于別人已存在的某個基礎(chǔ)鏡像來實現(xiàn)的,我們把它稱為base image。比如一個純凈版的最小化的centos、ubuntu或debian。
  2. 拉取鏡像命令,鏡像倉庫地址+倉庫名稱+鏡像名稱+鏡像版本
    docker pull <registry>[:<port>]/[<namespace>/]<name>:<tag>
    

2.1 基于容器制作鏡像

  • docker commit 命令是根據(jù)已存在的鏡像進行修改生成新鏡像。
  • 命令格式:
    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    
參數(shù) 釋義
-a 提交的鏡像作者。
-c 使用Dockerfile指令來創(chuàng)建鏡像。
-m 提交時的說明文字。
-p 在commit時,將容器暫停。

1.拉一個系統(tǒng)鏡像作為基礎(chǔ)鏡像,并創(chuàng)建一個臨時運行容器qingjun。

docker run --name qingjun -it --rm busybox /bin/sh

docker鏡像制作,docker,docker,java,容器,運維

2.將容器qingjun保存為新的鏡像,指定新鏡像存儲庫名稱+版本。

docker commit -p qingjun  baimu:v1

docker鏡像制作,docker,docker,java,容器,運維
3.遠程倉庫創(chuàng)建存儲庫,名稱需要與新鏡像的庫名一致。
docker鏡像制作,docker,docker,java,容器,運維
docker鏡像制作,docker,docker,java,容器,運維
4.本地登錄docker遠程倉庫。可以是docker hub官方倉庫,也可以是自己搭建的私有倉庫harbor。
docker鏡像制作,docker,docker,java,容器,運維
5.推送鏡像。

//給鏡像打標簽,標簽需要與遠程倉庫對應。
docker tag baimu:v1 baimuqingjun/baimu:v1

//推送鏡像。
docker push baimuqingjun/baimu:v1

6.docker hub倉庫查看推送結(jié)果。
docker鏡像制作,docker,docker,java,容器,運維
7.將本地的原鏡像刪除,拉取剛剛推送上去的鏡像,并創(chuàng)建臨時容器制作第二個鏡像。

//刪除本地v1鏡像。
docker rmi baimuqingjun/baimu:v1


//拉取v1鏡像啟動容器。
docker run --name qingjun -it --rm baimuqingjun/baimu:v1 /bin/sh
/ # cd /data/
/data # rm -f text 
/data # echo 'haha' > index.html


//使用dockerfile命令制作v2鏡像。
//-c指定運行httpd服務,-f前臺運行,-h指定網(wǎng)站目錄。
docker commit  -c 'CMD ["/bin/httpd","-f","-h","/data"]' -p qingjun baimuqingjun:v2
docker tag baimuqingjun:v2 baimuqingjun/baimu:v2 
docker push baimuqingjun/baimu:v2

docker鏡像制作,docker,docker,java,容器,運維
8.使用v2鏡像運行容器,獲取容器ip。

//-d指定容器后臺運行,需要有個前臺進程,這里指定睡眠時間。
docker run --name qingjun  baimuqingjun/baimu:v2 

docker鏡像制作,docker,docker,java,容器,運維

三、鏡像導入與導出

1.將第一臺機器上的鏡像進行打包,并將鏡像包傳到第二臺機器上。

docker save -o baimu_v2.image.gz baimuqingjun/baimu:v2

docker鏡像制作,docker,docker,java,容器,運維
2.在第二臺機器上對鏡像包進行導入。

docker load -i baimu_v2.image.gz

docker鏡像制作,docker,docker,java,容器,運維文章來源地址http://www.zghlxwxcb.cn/news/detail-722861.html

到了這里,關(guān)于docker基礎(chǔ)3——制作鏡像(基于容器)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • Docker容器化技術(shù)(使用Dockerfile制作鏡像)

    Docker容器化技術(shù)(使用Dockerfile制作鏡像)

    Docker 支持通過擴展現(xiàn)有鏡像,創(chuàng)建新的鏡像。實際上,Docker Hub 中 99% 的鏡像都是通過在 base 鏡像中安裝和配置需要的軟件構(gòu)建出來的。 1、Docker 鏡像為什么分層 鏡像分層最大的一個好處就是共享資源。 比如說有多個鏡像都從相同的 base 鏡像構(gòu)建而來,那么 Docker Host 只需在

    2024年03月19日
    瀏覽(860)
  • docker centos容器里,安裝python3環(huán)境,且安裝java8環(huán)境。并打成基礎(chǔ)鏡像

    一、 1、運行命令,即自動下載centos對應的鏡像,但此時鏡像是關(guān)閉狀態(tài): docker run centos:7.4 2、docker images 查看上述命令對應的 鏡像 3、docker run -it centos:7.4 /bin/bash 之后退出 exit docker ps -a 之后, docker start imageid 啟動對應的關(guān)閉狀態(tài)的鏡像 。 4、docker exec -it imageid /bin/bash 進入鏡

    2023年04月09日
    瀏覽(31)
  • Docker容器學習:Dockerfile制作Web應用系統(tǒng)nginx鏡像

    Docker容器學習:Dockerfile制作Web應用系統(tǒng)nginx鏡像

    目錄 編寫Dockerfile 1.文件內(nèi)容需求: 2.編寫Dockerfile: 3.開始構(gòu)建鏡像 ?4.現(xiàn)在我們運行一個容器,查看我們的網(wǎng)頁是否可訪問 推送鏡像到私有倉庫 1.把要上傳的鏡像打上合適的標簽 2.登錄harbor倉庫 3.上傳鏡像 1.文件內(nèi)容需求: 基于centos基礎(chǔ)鏡像。 指定作者信息。 安裝nginx服

    2024年02月11日
    瀏覽(119)
  • 根據(jù)自己修改后的容器制作鏡像并上傳docker hub

    要將自己的鏡像上傳到Docker Hub,可以按照以下步驟進行操作: 首先,確保已經(jīng)在本地構(gòu)建好了需要上傳的 Docker 鏡像。如果還沒有構(gòu)建,可以使用 docker build 命令來創(chuàng)建鏡像。 登錄到 Docker Hub 賬號。打開終端或命令提示符,運行以下命令并輸入相應的用戶名和密碼: docker

    2024年01月21日
    瀏覽(20)
  • Docker介紹下載安裝、制作鏡像及容器、做目錄映射、做端口映射

    Docker介紹下載安裝、制作鏡像及容器、做目錄映射、做端口映射

    在計算機中,虛擬化(英語:Virtualization)是一種資源管理技術(shù),是將計算機的各種實體資源,如服務器、網(wǎng)絡、內(nèi)存及存儲等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實體結(jié)構(gòu)間的不可切割的障礙,使用戶可以比原本的組態(tài)更好的方式來應用這些資源。這些資源的新虛擬部份是

    2023年04月12日
    瀏覽(30)
  • 【運維知識大神篇】運維人必學的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境)

    【運維知識大神篇】運維人必學的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境)

    本篇文章開始給大家介紹Docker,這個是我非常喜歡的一個服務,介紹給大家,希望大家也能喜歡! 目錄 何為容器 Docker環(huán)境安裝部署 一、yum安裝(CentOS7.9) 二、rpm包安裝(CentOS) 三、卸載docker環(huán)境 四、安裝指定的docker版本 五、Ubuntu安裝docker環(huán)境 六、使用deb安裝docker 七、

    2024年01月18日
    瀏覽(104)
  • Docker容器------鏡像,容器基礎(chǔ)命令

    Docker容器------鏡像,容器基礎(chǔ)命令

    目錄 ?一,docker鏡像 ?1,查看docker版本 ?2,獲取鏡像 2.1查看下載到本地的所有鏡像? ?2.2 獲取鏡像信息 2.3 添加鏡像標簽(上傳鏡像到倉庫)? ?2.4 鏡像導出 ?2.5 鏡像導入 ?2.6 ,刪除鏡像 ?2.7 上傳鏡像 ?編輯?二,docker 容器操作 1,查看容器 2,容器創(chuàng)建----docker create ?

    2024年02月05日
    瀏覽(31)
  • Docker基礎(chǔ)(鏡像的結(jié)構(gòu),Dockerfile語法介紹,基于Ubuntu鏡像來構(gòu)建一個Java應用)

    要想自己構(gòu)建鏡像,必須先了解鏡像的結(jié)構(gòu)。 鏡像之所以能讓我們快速跨操作系統(tǒng)部署應用而忽略其運行環(huán)境、配置,就是因為鏡像中包含了程序運行需要的系統(tǒng)函數(shù)庫、環(huán)境、配置、依賴。 因此,自定義鏡像本質(zhì)就是依次準備好程序運行的基礎(chǔ)環(huán)境、依賴、應用本身、運

    2024年02月20日
    瀏覽(25)
  • 【Docker系列】容器基礎(chǔ)、Docker鏡像管理

    個人名片: 對人間的熱愛與歌頌,可抵歲月冗長?? Github???????:念舒_C.ying CSDN主頁??:念舒_C.ying 個人博客?? :念舒_C.ying 2.1 Docker鏡像查找 命令查找 docker官網(wǎng)查找 2.2 Docker鏡像管理 拉取MySQL鏡像 查看本地鏡像 鏡像加速(阿里云) Daocloud鏡像站加速 鏡像刪除 2.3 容器

    2024年01月25日
    瀏覽(22)
  • linux下docker安裝、鏡像下載、鏡像基礎(chǔ)操作、容器基礎(chǔ)操作

    linux下docker安裝、鏡像下載、鏡像基礎(chǔ)操作、容器基礎(chǔ)操作

    目錄 一、環(huán)境準備 1、開啟虛擬化 2、關(guān)閉防火墻 3、yum倉庫獲取阿里源(清華、京東都可以) 4、確保能ping到外網(wǎng) 二、安裝docker 1、yum安裝docker 2、啟動docker并設置開機自啟 3、安裝docker-ce阿里鏡像加速器 三、docker基本操作 1、查看版本 2、查看詳細信息 四、鏡像操作 1、do

    2024年02月06日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包