欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解docker鏡像的分層(小白必看)

 更新時間:2022年03月14日 10:56:51   作者:思誠代碼塊  
本文關(guān)鍵詳細(xì)介紹了Docker鏡像層次的基本原理詳細(xì)說明,原文中根據(jù)實例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下

大家好,今天分享docker鏡像的分層理解

我們拉取Redis 鏡像

[root@localhost ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
a2abf6c4d29d: Pull complete 
c7a4e4382001: Pull complete 
4044b9ba67c9: Pull complete 
c8388a79482f: Pull complete 
413c8bb60be2: Pull complete 
1abfd3011519: Pull complete 
Digest: sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest

我們發(fā)現(xiàn)整個下載的過程里,它是一層一層的

查看Redis 鏡像具體信息

[root@localhost ~]# docker   inspect  redis:latest 
[
    {
        "Id": "sha256:7614ae9453d1d87e740a2056257a6de7135c84037c367e1fffa92ae922784631",
        "RepoTags": [
            "redis:latest"
        ],
        "RepoDigests": [
            "redis@sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2021-12-21T12:42:49.755107412Z",
        "Container": "13d25f53410417c5220c8dfe8bd49f06abdbcd69faa62a9b877de02464bb04a3",
        "ContainerConfig": {
            "Hostname": "13d25f534104",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "6379/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "GOSU_VERSION=1.12",
                "REDIS_VERSION=6.2.6",
                "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.2.6.tar.gz",
                "REDIS_DOWNLOAD_SHA=5b2b8b7a50111ef395bf1c1d5be11e6e167ac018125055daa8b5c2317ae131ab"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"redis-server\"]"
            ],
            "Image": "sha256:e093f59d716c95cfce82c676f099b960cc700432ab531388fcedf79932fc81ec",
            "Volumes": {
                "/data": {}
            },
            "WorkingDir": "/data",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "DockerVersion": "20.10.7",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "6379/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "GOSU_VERSION=1.12",
                "REDIS_VERSION=6.2.6",
                "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.2.6.tar.gz",
                "REDIS_DOWNLOAD_SHA=5b2b8b7a50111ef395bf1c1d5be11e6e167ac018125055daa8b5c2317ae131ab"
            ],
            "Cmd": [
                "redis-server"
            ],
            "Image": "sha256:e093f59d716c95cfce82c676f099b960cc700432ab531388fcedf79932fc81ec",
            "Volumes": {
                "/data": {}
            },
            "WorkingDir": "/data",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 112691373,
        "VirtualSize": 112691373,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/4330f4d6227b69d1b63675442c8f1fba885046258dcc61d06b2caf176346ac04/diff:/var/lib/docker/overlay2/c2340e727d1c72a5a374c3bc67edb4dc5af45b6c279d949d29e1897262e97d97/diff:/var/lib/docker/overlay2/0890ec7ba8ff12ab8b6b4c392f2b9322ecdb32afdf007e59cbaf1bb9b9954f3d/diff:/var/lib/docker/overlay2/3aee3ca28a64f4b825818c5883ec948d2006b683ce7890716c805b2023540ddf/diff:/var/lib/docker/overlay2/d3b24bd8a350d442e19251f859b45944c5b4af538476f0f5184a3143a7b1debf/diff",
                "MergedDir": "/var/lib/docker/overlay2/28334f5d377c08e8e8d83eaa61d10c424ffbc9367ca7d4c5a2f644d99e22418c/merged",
                "UpperDir": "/var/lib/docker/overlay2/28334f5d377c08e8e8d83eaa61d10c424ffbc9367ca7d4c5a2f644d99e22418c/diff",
                "WorkDir": "/var/lib/docker/overlay2/28334f5d377c08e8e8d83eaa61d10c424ffbc9367ca7d4c5a2f644d99e22418c/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f",
                "sha256:9b24afeb7c2f21e50a686ead025823cd2c6e9730c013ca77ad5f115c079b57cb",
                "sha256:4b8e2801e0f956a4220c32e2c8b0a590e6f9bd2420ec65453685246b82766ea1",
                "sha256:529cdb636f61e95ab91a62a51526a84fd7314d6aab0d414040796150b4522372",
                "sha256:9975392591f2777d6bf4d9919ad1b2c9afa12f9a9b4d260f45025ec3cc9b18ed",
                "sha256:8e5669d8329116b8444b9bbb1663dda568ede12d3dbcce950199b582f6e94952"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

觀察這一塊

  "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f",
                "sha256:9b24afeb7c2f21e50a686ead025823cd2c6e9730c013ca77ad5f115c079b57cb",
                "sha256:4b8e2801e0f956a4220c32e2c8b0a590e6f9bd2420ec65453685246b82766ea1",
                "sha256:529cdb636f61e95ab91a62a51526a84fd7314d6aab0d414040796150b4522372",
                "sha256:9975392591f2777d6bf4d9919ad1b2c9afa12f9a9b4d260f45025ec3cc9b18ed",
                "sha256:8e5669d8329116b8444b9bbb1663dda568ede12d3dbcce950199b582f6e94952"
            ]
        },

截圖:

在這里插入圖片描述

這就是它一條一條的記錄

看這個圖

這就是一個基本的docker 鏡像的層級

在這里插入圖片描述

可以將docker 鏡像看成一個整體

所有的docker 鏡像都是一個 基礎(chǔ)鏡像(可以理解為依托點(diǎn)),在基礎(chǔ)鏡像的層次和基礎(chǔ)之上,所做的修改以及增加的功能,都會生成新的一層

在上面的這個圖當(dāng)中,我們就是在Ubuntu 16.04 這個鏡像的基礎(chǔ)之上安裝Python,所以它就會變成一個二層的整體,再次在上面加上安全補(bǔ)丁,它就會變成個三層的整體, 就是說此時的這個鏡像是一個三層的鏡像,我們在使用和運(yùn)行的運(yùn)行中,就可以看見我們安裝的Python和安全補(bǔ)丁

在這里插入圖片描述

畫個圖:
解釋一下:
這個實例當(dāng)中的鏡像有三層
一層自己有文件1,文件2, 文件3 文件4

二層在一層的基礎(chǔ)上加上文件5,文件6, 文件7 文件8

三層在二層的基礎(chǔ)上加上文件10,文件11

在這里,二層默認(rèn)除了有自己的東西以外,默認(rèn)有一層的所有文件
三層默認(rèn)除了有自己的東西以外,默認(rèn)有二層的所有文件

就是說,二層全部的東西有 文件1 文件2 文件3 文件4 文件5 文件6 文件7 文件8

三層全部的東西有 文件1 文件2 文件3 文件4 文件5 文件6 文件7 文件8 文件9 文件10 文件11

這個實例 鏡像最終包含了 這11個文件

各層之間是獨(dú)立的,各層之間重復(fù)的東西是共用的,也就是關(guān)于的部分不用再下載了

這就是docker 鏡像分層的概念

  "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f",
                "sha256:9b24afeb7c2f21e50a686ead025823cd2c6e9730c013ca77ad5f115c079b57cb",
                "sha256:4b8e2801e0f956a4220c32e2c8b0a590e6f9bd2420ec65453685246b82766ea1",
                "sha256:529cdb636f61e95ab91a62a51526a84fd7314d6aab0d414040796150b4522372",
                "sha256:9975392591f2777d6bf4d9919ad1b2c9afa12f9a9b4d260f45025ec3cc9b18ed",
                "sha256:8e5669d8329116b8444b9bbb1663dda568ede12d3dbcce950199b582f6e94952"
            ]
        },

和這個意思是一樣的的

一個新的科
docker 容器都是可讀的,當(dāng)容器啟動的時候,一個新的可寫層加載到容器頂部,這個新的鏡像層,就是我們的容器層,在容器層之下,

就是我們的鏡像層

我們在容器當(dāng)中操作的就是我們的容器層,而我們?nèi)绻胍虬@個容器給別人使用 ,要將鏡像層和容器層一起和起來進(jìn)行打包

在這里插入圖片描述

這就是docker 鏡像分層的整個過程,好了有關(guān)于docker鏡像的分層理解就到這里了,謝謝大家了

到此這篇關(guān)于深入理解docker鏡像的分層(小白必看)的文章就介紹到這了,更多相關(guān)docker鏡像分層內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker端口映射實現(xiàn)網(wǎng)絡(luò)訪問的方法

    Docker端口映射實現(xiàn)網(wǎng)絡(luò)訪問的方法

    本篇文章主要介紹了Docker端口映射實現(xiàn)網(wǎng)絡(luò)訪問的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 在宿主機(jī)上執(zhí)行docker容器內(nèi)部的shell或程序方式

    在宿主機(jī)上執(zhí)行docker容器內(nèi)部的shell或程序方式

    這篇文章主要介紹了在宿主機(jī)上執(zhí)行docker容器內(nèi)部的shell或程序方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • docker-compose配置并部署redis服務(wù)的實現(xiàn)

    docker-compose配置并部署redis服務(wù)的實現(xiàn)

    本文主要介紹了docker-compose配置并部署redis服務(wù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • docker中安裝elasticsarch 等鏡像的過程

    docker中安裝elasticsarch 等鏡像的過程

    這篇文章主要介紹了docker中安裝elasticsarch 等鏡像,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Docker啟用TLS實現(xiàn)安全配置的步驟

    Docker啟用TLS實現(xiàn)安全配置的步驟

    這篇文章主要給大家介紹了關(guān)于Docker啟用TLS實現(xiàn)安全配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Rancher+Docker+SpringBoot實現(xiàn)微服務(wù)部署、擴(kuò)容、環(huán)境監(jiān)控

    Rancher+Docker+SpringBoot實現(xiàn)微服務(wù)部署、擴(kuò)容、環(huán)境監(jiān)控

    Rancher?是一套容器管理平臺,可以在生產(chǎn)環(huán)境中快捷的部署和管理容器,方便的對容器進(jìn)行cpu內(nèi)存環(huán)境監(jiān)控、日志監(jiān)控、擴(kuò)容縮容,自動重啟,這篇文章主要介紹了Rancher+Docker+SpringBoot實現(xiàn)微服務(wù)部署、擴(kuò)容、環(huán)境監(jiān)控,需要的朋友可以參考下
    2022-04-04
  • Linux上使用docker啟動redis并遠(yuǎn)程訪問的實現(xiàn)

    Linux上使用docker啟動redis并遠(yuǎn)程訪問的實現(xiàn)

    這篇文章主要介紹了Linux上使用docker啟動redis并遠(yuǎn)程訪問的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • docker中的jenkins之流水線構(gòu)建項目步驟詳解

    docker中的jenkins之流水線構(gòu)建項目步驟詳解

    jenkins有2種流水線分為聲明式流水線與腳本化流水線,腳本化流水線是jenkins舊版本使用的流水線腳本,新版本Jenkins推薦使用聲明式流水線,本文給大家介紹docker中的jenkins之流水線構(gòu)建項目,感興趣的朋友一起看看吧
    2023-08-08
  • docker鏡像壓縮squash的實現(xiàn)

    docker鏡像壓縮squash的實現(xiàn)

    本文主要介紹了docker鏡像壓縮squash的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 基于jib-maven-plugin插件快速構(gòu)建微服務(wù)docker鏡像的方法

    基于jib-maven-plugin插件快速構(gòu)建微服務(wù)docker鏡像的方法

    這篇文章主要介紹了基于jib-maven-plugin快速構(gòu)建微服務(wù)docker鏡像的方法,對于?Java?程序來說使用?jib-maven-plugin?插件來構(gòu)建鏡像還是非常方便的,本文通過實例代碼詳細(xì)講解,需要的朋友可以參考下
    2023-02-02

最新評論