指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

查询docker镜像的详细信息:

$ docker image inspect jwilder/nginx-proxy:latest
[
    {
        "Id": "sha256:a30f642c4477a306775daa76ec27ce3c04638f1e2e58e0a7e5155a090e7ceb72",
        "RepoTags": [
            "jwilder/nginx-proxy:latest"
        ],
        "RepoDigests": [
            "jwilder/nginx-proxy@sha256:96103e629e71a549c6003a01adc8ab43810014240776abfb2632e738f83ca8d5"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2024-08-05T00:03:50.935639279Z",
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.27.0",
                "NJS_VERSION=0.8.4",
                "NJS_RELEASE=2~bookworm",
                "PKG_RELEASE=2~bookworm",
                "NGINX_PROXY_VERSION=1.6.0-17-g83110b2",
                "DOCKER_GEN_VERSION=",
                "DOCKER_HOST=unix:///tmp/docker.sock"
            ],
            "Cmd": [
                "forego",
                "start",
                "-r"
            ],
            "ArgsEscaped": true,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "/app/",
            "Entrypoint": [
                "/app/docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>",
                "org.opencontainers.image.authors": "Nicolas Duchon <nicolas.duchon@gmail.com> (@buchdag), Jason Wilder",
                "org.opencontainers.image.created": "2024-08-12T00:03:25.049Z",
                "org.opencontainers.image.description": "Automated nginx proxy for Docker containers using docker-gen",
                "org.opencontainers.image.licenses": "MIT",
                "org.opencontainers.image.revision": "83110b24ef4f453149d464eda7536192c9a2863f",
                "org.opencontainers.image.source": "https://github.com/nginx-proxy/nginx-proxy",
                "org.opencontainers.image.title": "nginx-proxy",
                "org.opencontainers.image.url": "https://github.com/nginx-proxy/nginx-proxy",
                "org.opencontainers.image.version": "1.6.0-17-g83110b2"
            },
            "StopSignal": "SIGQUIT"
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 205251279,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/a041727d5cbedc52acac058f1746dd02cad0c3216122623b5726c08f4738a4af/diff:/var/lib/docker/overlay2/7c988ab00944c1ccf044c6e7703f15da4f8d897c30d5b9b51b0539f2bb607e8c/diff:/var/lib/docker/overlay2/7d0288ff3d1a3bea286af12b40360c2ad70c7673ba9b5c5fec2a927f84cec232/diff:/var/lib/docker/overlay2/a7f5948d11eb25dd97ca90000dd4a214387d359215116a3547b3482eefbb69a2/diff:/var/lib/docker/overlay2/01174b03fb70176786536b4206aa8ce01138d994906af4d231f401efbde07f14/diff:/var/lib/docker/overlay2/31776373a1356d84a0d8a89931379eb0d981fac7ec44a819de99b48e5d73d3a5/diff:/var/lib/docker/overlay2/795876b2e5ad1b0a622e35a9f6cfc0d80fda6873544efe4c19b63e3b3f9d24f3/diff:/var/lib/docker/overlay2/7b760c31862f4658c93d7bbdc7974502b5694f991e080dd73c340679e22cb5ff/diff:/var/lib/docker/overlay2/564fba017b8a8276cb70e305d29c45104c37553470d04b6579750fcc83fc9eb3/diff:/var/lib/docker/overlay2/cb40640a1096a3349846ecb888f56ded8868510f75101211a9c1dfa2d5ede524/diff:/var/lib/docker/overlay2/675df3a43ee8a26f6902acdae3473ffd06e98c580eab37fbc98d81abc64c975c/diff:/var/lib/docker/overlay2/f08049773b2c5f3401fe64e56b6c155cd88e1583346ae3be654184e4d7b11738/diff",
                "MergedDir": "/var/lib/docker/overlay2/47ca54da871b0d1e673a4b8c8909413dd68e32301980fe55ddd0e1952516588e/merged",
                "UpperDir": "/var/lib/docker/overlay2/47ca54da871b0d1e673a4b8c8909413dd68e32301980fe55ddd0e1952516588e/diff",
                "WorkDir": "/var/lib/docker/overlay2/47ca54da871b0d1e673a4b8c8909413dd68e32301980fe55ddd0e1952516588e/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:e0781bc8667fb5ebf954df4ae52997f6f5568ec9f07e21e5db7c9d324ed41e1f",
                "sha256:fcfa12460e7d6c1aab3b455b464e912f8d6004ac94eab980ccf362978e17bdf7",
                "sha256:a6355e7844d573a5978b972a7d15f5d64bfc34de68092d65be91409df71420c8",
                "sha256:a39383416a22a6881d5e4dcbfe414067f8778aa4c5d3afd48e5662f610f05d83",
                "sha256:09581b9299a2f52daec11dd77870844cb4cbd64bcae125fa93cc49f19b6deb72",
                "sha256:599e8de62018ddc0638e0f88adff1f2b65e8c5e1bf5a60a2655669f95f353b96",
                "sha256:60e72fbb314ed5a04c4d3f6ef808f4c142da0d06819aeda0e1790976f076beba",
                "sha256:4695c0dc00f5a3bfca166ad89d1b348b4fe13a112d2c594d8a119a2878cc296e",
                "sha256:b383c7787a780ae677c8ff2abd1d653bedc2c15a6927d3d031f7b8e6de1ed8c4",
                "sha256:ad07f5d19538db489c4f383a684ef4a8738be6d69682418d5e5616fc66d4e754",
                "sha256:d572154182c540b06bba69b1966cd5fe306e932bf7111310e202e945ebcc91e2",
                "sha256:9f73e7ece324f39e534d70c1fe53ddbebe3e77cb7f0814c10d692dcb94ce35d2",
                "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]
  
或者:
$ docker inspect jwilder/nginx-proxy:latest --format='{{index .RepoDigests 0}}'
jwilder/nginx-proxy@sha256:96103e629e71a549c6003a01adc8ab43810014240776abfb2632e738f83ca8d5
  
可以在hub.docker下查找jwilder/nginx-proxy,然后找到 INDEX DIGEST 为sha256:96103e629e71a549c6003a01adc8ab43810014240776abfb2632e738f83ca8d5的镜像,不是列表下的 Digest, 那个相当于列表的id, 要点进去,详情里查看.
  
1.Id 是镜像对象的唯一标识
它是 Docker 引擎内部生成的一个哈希值,用来唯一标识存储在本地的镜像。
作用:
标识镜像的具体内容,包括其所有层和元数据。
Docker 引擎用它来快速查找和管理镜像。
计算依据:
基于镜像的所有层内容和元数据(如环境变量、标签等)计算的 SHA256 哈希值。
一旦镜像的内容发生变化(比如重新构建镜像或修改了元数据),Id 就会改变。
2.RepoDigests 是仓库中镜像的内容标识
它是镜像在远程仓库中的唯一标识,和 Id 不完全相同。
作用:
标识远程仓库中镜像的内容版本。
确保拉取的镜像内容一致性。
区别:
RepoDigests 是 镜像在仓库中的内容地址,而 Id 是本地 Docker 引擎中管理的镜像标识。
RepoDigests 包括镜像的名称(如 jwilder/nginx-proxy)和内容的 digest。
Id 不包含镜像名称。
3.RepoTags 指向镜像的仓库标签,通常为用户设置的可读性好的别名。如: jwilder/nginx-proxy:latest
  
总结
Id 是镜像的本地标识,用于 Docker 内部管理和操作。
RepoDigests 是镜像在远程仓库中的内容标识,用于确保一致性。
虽然它们都基于镜像内容生成哈希,但作用和适用场景不同:Id 更本地化,而 RepoDigests 更适用于远程一致性验证。