如何制作docker镜像的过程(dockerfile)_linux服务器

直接使用 docker commit(不推荐)

推荐的原因是这种方式虽然很直接,但是不方便查看改了什么东西,不易于维护,没有像 dockerfile 这样的文件来查看修改了什么

首先你有已经 run 了一个容器,然后我们在这个容器中修改了一些东西,然后我们需要制作一个新的镜像

docker commit -m "自己输入一些信息" 容器名 新的镜像名:tag

然后我们在 images 中找一下这个新的镜像

docker images

ok,发现生成成功!

使用 dockerfile 方式制作(推荐)

推荐使用这种方式,实际上 dockerfile 写完后构建时候也只是依照 dockerfile 中的指令一条条的去执行,最后也是 commit

docker build

构建时候如果不加上-f dockerfile就表示默认识别当前目录下 DockerFile 文件,如果要指定就加上-f参数

  • 忽略文件

    .dockerignore

  • 指定文件

    docker build -f

  • 添加标签

    docker build -t

  • 不适用缓存

    docker build --no-cache

  • 构建时变量

    docker build --build-arg

详细过程

假如我们已经 pull 下来了一个新的镜像 xxx,我们想再 xxx 容器中改点东西后制作一下新的镜像,当然 DockerFile 文件也要准备好(下面这个最后一个点表示 DockerFile 文件所在的目录是当前目录下)(当然在 build 的时候可以使用上面 docker build 的一些参数)

docker build -t 新的镜像名:标签 -f 指定要制作的DockerFile名字 .

DockerFile 指令的具体用法请参照这篇博文

javascript:void(0)

然后我们在 images 中查看是否有新的镜像出现(镜像 id 不同)

docker images

最后我们通过 run 命令启动新容器即可!