基于docker制作镜像的一份思考?

当前获取docker镜像的三种方式

  1. 从dockerhub获取镜像 拿来即用
  2. 基于dockerfile去自定义制作镜像
  3. 基于现有的容器 docker commit 成镜像

我想什么样的情况下要用1 什么情况下用2 什么情况下使用3?

而且基于docker-compose启动的 docker镜像 会有一个问题就是 如果在docker-compose.yml 中映射了宿主机的目录到容器 name 这个commit的镜像 如果直接启动就会报错 除非也映射了相应的路径

基于docker制作的镜像,如果我得到了一个镜像(非dockerhub的镜像) 如何获取此镜像的dockerfile的制作过程?

阅读 1.9k
2 个回答
  1. 别人已经把dockerfile写好了,能开箱即用,就用1
  2. 要部署自己的应用的时候,一般都需要自定义制作镜像
  3. commit基本上很少用

docker history可以看到镜像的历史记录。

1 一般常用于开发环境,开源软件的快速部署。主要是为了让人快速使用,不需要知道细节。
2 一般是生产环境部署,或者开源软件自己的镜像构建。主要是为了控制镜像大小,尽可能最简。同时要了解里面的细节。所以一般都是基于各种Alpine环境
3 docker history可以看到部分构建过程

推荐问题