长沙望城建设局网站,win2008 wordpress,网站后台数据改不了,wordpress可以承载多少数据长话短说#xff0c;今天分享三组容易混淆的Dockerfile指令#xff0c; 帮助大家编写更优雅的Dockfile文件、构建更纯净的Docker镜像。COPY vs ADDCOPY、ADD主体功能类似#xff1a;从指定位置src拷贝文件到Docker镜像dest。COPY src... dest
ADD src今天分享三组容易混淆的Dockerfile指令 帮助大家编写更优雅的Dockfile文件、构建更纯净的Docker镜像。COPY vs ADDCOPY、ADD主体功能类似从指定位置src拷贝文件到Docker镜像dest。COPY src... dest
ADD src... dest
COPY只允许从Docker Engine主机上拷贝文件到Docker镜像文件ADD也能完成以上工作但是ADD支持另外两种src文件源可以是URL可以从src直接解压tar文件到目的地ADD http://foo.com/bar.go /tmp/main.go
# 从指定地址下载文件添加到镜像文件系统的/tmp/main.go位置ADD http://foo.com/bar.go /tmp/
# 因为以/结尾将会引用url中的文件名添加到指定的目录下ADD /foo.tar.gz /tmp/
# 自动解压主机文件到指定目录
“有趣的是URL下载和自动解压功能不能同时生效任何通过URL下载的压缩包文件不会自动解压。如果拷贝本地文件到镜像通常使用COPY因为含义更明确ADD支持URL文件、自动解压到指定目录这2个特性也很棒ARG vs ENVARG、ENV也让人很疑惑的都是Dockerfile中定义变量的指令。ARG用于镜像构建阶段ENV用于将来运行的容器。生成镜像后ARG值不可用正在运行的容器将无法访问ARG变量值。ARG VAR_NAME 5
# 构建镜像时可提供--build-arg VAR_NAME6 修改ARG值。
ENV主要是为容器环境变量提供默认值正在运行的容器可访问环境变量(这是将配置传递给应用的好方法)ENV VAR_NAME_2 6
# 启动容器时可通过docker run -e VAR_NAME_27或docker-compose.yml提供新的环境变量值来覆盖Dockerfile中设置的ENV值。
一个小技巧构建镜像时不能使用命令行参数重写ENV但是你可以使用ARG动态为ENV设置默认值# You can set VAR_A while building the image or leave it at the default
ARG VAR_A 5
# VAR_B gets the (overridden) value of VAR_A
ENV VAR_B $VAR_A
RUN vs ENTRYPOINT vs CMDRUN 在新层中执行命令并产生新镜像主要用于安装新软件包。ENTRYPOINT 执行程序的启动命令当您想将容器作为可执行文件运行时使用。CMD和ENTRYPOINT 都可以提供程序的启动命令CMD另一个作用是为执行中的容器提供默认值CMD [executable,param1,param2] (可执行形式,最常见)CMD command param1 param2 (脚本形式)CMD echo Hello world
# run -it image 输出 Hello world
“但是当容器以命令启动docker run -it image /bin/bash, CMD会被忽略bash解析器将会运行root98e4bed87725:/#CMD [param1,param2] (作为ENTRYPOINT指令默认值此时必须提供ENTRYPOINT指令且ENTRYPOINT也必须以Json Array形式)ENTRYPOINT [/bin/echo, Hello]
CMD [world]# run -it image 将会输出 Hello world
# run -it image earth 将会输出 Hello earth
打算构建一个可执行的且常驻的镜像最好选用ENTRYPOINT如果需要提供默认命令参数(可在容器运行时从命令行覆盖)请选择CMD。Referencehttps://www.ctl.io/developers/blog/post/dockerfile-add-vs-copy/https://vsupalov.com/docker-arg-vs-env/https://aboullaite.me/dockerfile-run-vs-cmd-vs-entrypoint/前后端分离如何在前端项目中动态插入后端API基地址in docker谁说docker-compose不能水平扩展容器、服务多实例基于docker-compose的Gitlab CI/CD实践排坑指南实例解读Docker Swarm关注我们更多干货及潮流技术请关注Dotnet Plus公众号▲▲“阅读全文体验更佳”