Docker图像构造
-t:表示构建映像的名称。
-f:指示用于构造的dockerfile文件名。
。:表示当前路径用作上下文(contex)。如果您在根目录/下进行构建,则不建议这样做。(不建议使用根路径作为上下文),因为根路径下有一个虚拟文件系统,比如/proc,构建时会报错找不到文件。
映像构建的过程是将文件打包到指定的contextpath中,并发送给服务器。服务器解压缩接收到的文件,然后将解压缩后的路径作为上下文来构建映像。
如果docker构造命令中没有用-f指定Dockerfile,则将上下文中的Dockerfile文件作为构造文件;如果Dockerfile文件路径和名称由-f指定,则在构建上下文中搜索指定的文件。
在构建docker build的时候一层不能用上一层的构建缓存,后续的层也不能用,所以如果大部分层都没变,建议把没变的层放在前面。如RUN apt get install -y tmux命令,如果tmux版本发生变化,就不能继续使用构建缓存,所以建议把这个语句放在后面。
参考:/2019/12/17/docker-build-optimize/。
-不不缓存=真。你不需要使用缓存。不知道你能不能解决建造时缓存不足的问题。
可以直接编译得到最终图像:docker build -t go/helloworld:3。
您还可以构建构建器阶段的镜像:docker build-target builder-t username/imagename:tag。
构建时,可以复制以前镜像中的文件,也可以复制任何镜像中的文件。
COPY-from = nginx:latest/etc/nginx/nginx . conf/nginx . conf
as之后的名字可以随意填写,主要作用是作为一个logo,方便单独构建其中一个镜像,或者其他镜像可以从中获取一些文件。
参考:/mycorp/my-app.git),
- destination:指定要推送的仓库地址,
- dockerfile:指定dockerfile文件。有个问题是标签写死了,每次获取图像都会被覆盖。
用于k8s:/A/119000039713484
并行构建、跳过未使用的阶段、更好的增量构建以及没有root权限的构建。但是,它仍然需要运行守护进程(buildkitd)。所以,如果你不想摆脱Docker,同时又想要一些新的功能和改进,可以考虑buildkit。