如何免费创建一个个人网站,泰安的网站建设公司,windows2008 建网站,高端网球拍文章目录 一、常用命令:二、注意事项:三、add和copy的区别:【1】ADD 指令支持自动解压缩功能【2】ADD 指令可以从 URL 复制内容【3】 ADD 指令具有隐式的文件拷贝功能 一、常用命令: Dockerfile是一个文本文件#xff0c;包含了一条条的指令#xff0c;在基于指定的镜像上包含了一条条的指令在基于指定的镜像上一条指令构建一层最终构建出一个新的镜像。 关键字作用备注格式FROM指定基础镜像指定基于哪个镜像开始构建FROM image:tagMAINTAINER作者信息标明这个dockerfile是谁写的已弃用MAINTAINER xxx xxxLABEL标签给镜像添加元数据以键值对的形式可以理解类似注释LABEL keyvalue keyvalue keyvalueRUN制作镜像时执行的命令构建镜像时运行的指令默认是/bin/shRUN 命令行命令或RUN[可执行文件, 参数1, 参数2...,参数n](相当于RUN 可执行文件 参数1 参数2 … 参数n)CMD容器启动时执行的命令运行容器时执行的shell环境。每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令只有最后一条会被执行。有3种格式【1】exec执行CMD [executable,param1,param2]【2】/bin/sh中执行CMD command param1 param2【3】提供给 ENTRYPOINT 的默认参数CMD [param1,param2]ENTRYPOINT入口一般在制作一些执行就关闭的容器中会使用ENTRYPOINT [executable, param1, param2]COPY复制文件到镜像中构建的时候复制文件到镜像中COPY 源路径 目标路径(源路径是宿主机的路径目标路径是容器的路径)ADD添加文件构建时添加文件到镜像中与COPY的区别是ADD会自动解压ADD 源路径 目标路径(源路径是宿主机的路径目标路径是容器的路径)ENV环境变量在构建镜像时设置环境变量可以在启动容器的时候通过-e覆盖即容器内也可以使用ENV key valueARG构建参数用于指定传递给构建运行时的变量(给dockerfile传参)相当于构建镜像时可以在外部为里面传参ARG name[default value]VOLUME定义外部可以挂载的匿名数据卷在启动容器时若忘记挂载数据卷会自动挂载到匿名卷VOLUME [/xxx/xx/xxxx, xxx, ..., xxx]EXPOSE声明容器的服务端口仅仅声明容器的服务端口及提供服务的端口EXPOSE 端口号WORKDIR工作目录指定容器的开始工作目录若没有时会自动创建。设置之后Dockerfile中其后的命令RUN、CMD、ENTRYPOINT、ADD、COPY等命令都会在该目录下执行 WORKDIR最好是绝对路径USER指定容器执行用户指定运行容器时的用户名或ID执行用户USER user
二、注意事项: Dockerfile本质是一个文件通过指令描述镜像的构建过程。Dockerfile的注释符号是#。Dockerfile的第一行必须是FROM从一个基础镜像来构建。通过Dockerfile构建镜像命令格式为docker build -f Dockerfile文件路径 -t 镜像名称:版本 . 默认一般把文件命名为Dockerfile然后构建命令直接用docker build -t 要保存的镜像名称:版本 .最后的.的含义是将当前目录告诉docker引擎然后当执行docker build命令后本机将当前目录下的所有文件发送给docker引擎最后由docker引擎完成镜像的构建 三、add和copy的区别: Dockerfile 中的 ADD 与 COPY 指令都可以用于将本地文件或目录复制到 Docker 镜像中但它们之间有一些区别。 【1】ADD 指令支持自动解压缩功能 当使用 ADD 指令将本地文件复制到 Docker 镜像中时如果该文件是压缩包格式Docker 会自动解压缩该文件。例如 ADD nginx-1.21.0.tar.gz /usr/local/上述例子中在将本地的 nginx-1.21.0.tar.gz 文件复制到 Docker 镜像的 /usr/local/ 目录下时Docker 会将该文件解压缩。 而 COPY 指令并不支持自动解压缩功能需要手动解压缩后再复制进镜像。 【2】ADD 指令可以从 URL 复制内容 ADD 指令除了能够复制本地文件和目录外还可以复制远程文件例如从 URL 下载到 Docker 镜像中。例如 ADD https://example.com/nginx-1.21.0.tar.gz /usr/local/上述例子中会从远程 URL https://example.com/nginx-1.21.0.tar.gz 下载文件并将其复制到 Docker 镜像的 /usr/local/ 目录下。 而 COPY 指令只能复制本地文件和目录。 【3】 ADD 指令具有隐式的文件拷贝功能 ADD 指令除了能够复制本地文件和目录外还具有一个隐式的文件拷贝功能当复制一个压缩包文件到容器中时Docker 会自动解压并且可以直接从 URL 下载文件并解压缩。例如 ADD package.tar.gz /app/上述例子中如果 package.tar.gz 是一个压缩包文件则 Docker 会自动解压缩该文件并将其复制到 /app/ 目录下。而 COPY 指令无法实现这一功能。