如何制作docker镜像的过程(dockerfile)
直接使用 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 指令的具体用法请参照这篇博文
https://abcnull.blog.****.net/article/details/107902346
然后我们在 images 中查看是否有新的镜像出现(镜像 id 不同)
docker images
最后我们通过 run 命令启动新容器即可!