![]() |
1
4
我不会用docker commit, 这看起来是一个非常好的主意,但是你不能像使用Dockerfile那样随意地复制图像,而且一旦完成,你也不能更改基本图像,因此很难提交,例如,对底层os基本图像的安全补丁。 如果你使用完整的Dockerfile方法,你可以重新运行docker build,你会得到同样的图像。你可以改变基本图像。 因此,我的经验法则是,如果您正在创建一个临时工具,而您不关心重用或随意复制图像,那么commit很方便使用。 据我所知,Docker每个容器映像都有两个部分,一组只读层构成映像的大部分,然后是一个小层,在提交任何更改时都是可写的。 当您运行commit docker继续并创建一个新的映像这是基本映像加上您所做的更改(创建的映像是一个不同的映像),它会将代码复制到瘦的可写层。因此,一个新的只读层并不是创建的,它只是将生成的增量存储到一个薄的可写层中。 别相信我的话 Redhats advice 为了清楚起见,第5步中的文章说:
|