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

时间:2015-06-11 22:18:34

标签: git docker

我很好奇。对我来说它看起来像git,但我无法找到证实这一点的消息来源。或者它是否拥有自己的修订控制系统?

1 个答案:

答案 0 :(得分:5)

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

  • 依靠散列来唯一标识文件系统层:这可以使它类似于用户的git
  • commitpushespulls
  • 的概念中获取初步灵感

使这一点非常明显的一件事是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                          

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