1、docker 构建自定义镜像copy与add的区别
copy指令和add指令的唯一区别在于:是否支持从远程URL获取资源。
COPY指令只能从执行docker build所在的主机上读取资源并复制到镜像中。而ADD指令还支持通过URL从远程服务器读取资源并复制到镜像中。
相同需求时,推荐使用COPY指令。ADD指令更擅长读取本地tar文件并解压缩。
ADD和COPY指令
COPY同ADD的语法一致,复制拷贝文件。
ADD 复制新文件、目录或远程文件 URL <src> ,并将它们添加到<dest>中。
<src>可以指定多个资源,但如果它们是文件或目录,则它们的路径被解释为相对于构建上下文的源,也就是_WORKDIR_。
例如:docker add http://www.example.com/test.pdf test.pdf
docker copy 就不能执行这个命令
2、CMD 与 ENTRYPOINT 与RUN 区别
有三种格式
CMD ["<executable>","param1","param2",...]
CMD command param1 param2
CMD ["param1","param2"]
ENTRYPOINT 指定这个容器启动的时候要运行的命令
ENTRYPOINT ["executable", "param1", "param2",...]
RUN ["executable", "param1", "param2"] (exec 形式)
RUN <command>
RUN ["/bin/bash","-c","<executable>","param1","param2",...]