写点什么

DockerFile 的编写构建镜像步骤,常用命令和案例

  • 2022 年 4 月 25 日
  • 本文字数:1342 字

    阅读完需:约 4 分钟

  • docker run 运行镜像

  • docker push 发布镜像




[](()2.dockerfile 文件编写基本步骤和注意事项




  • 每个保留关键字必须大写

  • 执行顺序由上到下

  • 再文件中用“#”表示注释

  • 每一个指令都会去创建一个新的镜像层,并提交




[](()3.常用的 Dockerfile 指令




注:常用指令引用了大神的,链接为:https://www.cnblogs.com/linjiqin/p/8735230.html


1.FROM:格式为 FROM image 或 FROM image:tag,并且 Dockerfile 中第一条指令必须是 FROM 指令,且在同一个 Dockerfile 中创建多个镜像时,可以使用多个 FROM 指令。


2. MAINTAINER:格式为 MAINTAINER user_name user_email,用于声明镜像是谁写的一般写姓名+邮箱


3.RUN


格式为 RUN command 或 RUN [“EXECUTABLE”,“PARAM1”,“PARAM2”…],前者在 shell 终端中运行命令,/bin/sh -c command,例如:/bin/sh -c “echo hello”;后者使用 exec 执行,指定其他运行终端使用 RUN["/bin/bash","-c",“echo hello”]每条 RUN 指令将当前的镜像基础上执行指令,并提交为新的镜像,命令较长的时候可以使用\来换行。


4.CMD


支持三种格式:


CMD [“executable”,“param1”,“param2”],使用 exec 执行,这是推荐的方式。


CMD command param1 param2 在/bin/sh 中执行。


CMD [“param1”,“param2”] 提供给 ENTE 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 RYPOINT 的默认参数。


CMD 用于指定容器启动时执行的命令,每个 Dockerfile 只能有一个 CMD 命令,多个 CMD 命令只执行最后一个。若容器启动时指定了运行的命令,则会覆盖掉 CMD 中指定的命令。


5.EXPOSE


格式为 EXPOSE port [port2,port3,…],例如 EXPOSE 80 这条指令告诉 Docker 服务器暴露 80 端口,供容器外部连接使用。


在启动容器的使用使用-P,Docker 会自动分配一个端口和转发指定的端口,使用-p 可以具体指定使用哪个本地的端口来映射对外开放的端口。


6.ENV


格式为:EVN key value 。用于指定环境变量,这些环境变量,后续可以被 RUN 指令使用,容器运行起来之后,也可以在容器中获取这些环境变量。


例如


ENV word hello


RUN echo $word


7.ADD


格式:ADD src dest


该命令将复制指定本地目录中的文件到容器中的 dest 中,src 可以是是一个绝对路径,也可以是一个 URL 或一个 tar 文件,tar 文件会自动解压为目录。


8.COPY


格式为:COPY src desc


复制本地主机 src 目录或文件到容器的 desc 目录,desc 不存在时会自动创建。


9.ENTRYPOINT


格式有两种:


ENTRYPOINT [“executable”,“param1”,“param2”]


ENTRYPOINT command param1,param2 会在 shell 中执行。


用于配置容器启动后执行的命令,这些命令不能被 docker run 提供的参数覆盖。和 CMD 一样,每个 Dockerfile 中只能有一个 ENTRYPOINT,当有多个时最后一个生效。


10.VOLUME


格式为 VOLUME ["/data"]


作用是创建在本地主机或其他容器可以挂载的数据卷,用来存放数据。


11.USER


格式为:USER username


指定容器运行时的用户名或 UID,后续的 RUN 也会使用指定的用户。要临时使用管理员权限可以使用 sudo。在 USER 命令之前可以使用 RUN 命令创建需要的用户。


例如:RUN groupadd -r docker && useradd -r -g docker docker


12.WORKDIR


格式: WORKDIR /path


为后续的 RUN CMD ENTRYPOINT 指定配置工作目录,可以使用多个 WORKDIR 指令,若后续指令用得是相对路径,则会基于之前的命令指定路径。

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
DockerFile的编写构建镜像步骤,常用命令和案例_Java_爱好编程进阶_InfoQ写作社区