docker用于(图像)版本控制的是什么?

Sta*_*ovv 6 git docker

我好奇.它看起来像我的git,但我找不到证实这一点的消息来源.或者它有它自己的修订控制系统?

ice*_*ime 5

Docker今天不在内部使用git进行任何类型的资源版本控制.但它确实如此:

  • 依靠散列来唯一标识文件系统层:这可以使它类似于用户的git
  • 从承诺,推动和拉动的概念中获取最初的灵感

使这个超级明显的一件事是docker history命令将显示构成图像的所有连续"提交"(即操作),每个命令都有一个单独的哈希:

$ docker history dev
IMAGE               CREATED             CREATED BY                                      SIZE                         COMMENT
437e07e119e1        11 minutes ago      /bin/sh -c #(nop) COPY dir:3c72cf7559b6aeff6b   80.23 MB                     
92b739339069        7 hours ago         /bin/sh -c #(nop) ENTRYPOINT &{["hack/dind"]}   0 B                          
07ed6f8a66d7        7 hours ago         /bin/sh -c set -x     && git clone https://gi   4.462 MB                     
0a7eacf986e3        7 hours ago         /bin/sh -c #(nop) ENV RSRC_COMMIT=e48dbf1b7fc   0 B                          
41478ca01b73        7 hours ago         /bin/sh -c set -x                               && export GOPATH="$(mktemp   2.689 MB            
070d4d30261e        7 hours ago         /bin/sh -c #(nop) ENV TOMLV_COMMIT=9baf8a8a9f   0 B                          
e75c29475d7a        7 hours ago         /bin/sh -c set -x                               && export GOPATH="$(mktemp   3.227 MB            
857a0ec21751        7 hours ago         /bin/sh -c ./contrib/download-frozen-image.sh   3.59 MB                      
e936f5546782        7 hours ago         /bin/sh -c #(nop) COPY file:5d664ff5e9669851c   3.866 kB                     
0d12674bd0af        7 hours ago         /bin/sh -c ln -sv $PWD/contrib/completion/bas   0 B                          
ef858f6d9027        7 hours ago         /bin/sh -c ln -sfv $PWD/.bashrc ~/.bashrc       0 B                          
287721a0a2b6        7 hours ago         /bin/sh -c #(nop) ENV DOCKER_BUILDTAGS=apparm   0 B                          
Run Code Online (Sandbox Code Playgroud)

最后要注意的是Docker正在向内容可寻址层发展,因此这些哈希不是随机生成的(就像git那样),而是唯一地标识给定内容.