Dockerfile常用指令
利用Dockerfile构建镜像比较方便快捷,在编写Dockerfile文件中我们需要用到很多常用的指令,为了方便以后使用,具体用法及说明在此记录一下,如有错误请及时指出,谢谢!
FROM指令:

image必须是已存在的镜像
作为将要构建的镜像的基础镜像
必须是第一条非注释的指令
例如:

MAINTAINER指令:

指定镜像的作者信息,包含镜像的所有者和联系信息
例如:

RUN指令:(在镜像构建过程运行)

每一个RUN命令都会在当前镜像的上层创建一个新的镜像来运行指定的命令。
EXPOSE指令:

指定运行该镜像的容器使用的端口,可以指定一个或多个端口,"EXPOSE 80"
虽然在EXPOSE指令中已经暴露了80端口,但是在启动容器的时候还是要指定端口信息,容器本身不会自动暴露端口,例如:

CMD指令:(在容器运行时运行,docker run启动容器时如果指定了容器运行时的命令,那么CMD指令会被覆盖,不会执行)

ENTERYPOINT指令:(不会被docker run启动容器时指定的指令覆盖,如果要覆盖,可以使用docker run --entrypoint覆盖)

ADD指令:

COPY指令:

如下Dockerfile

ADD与COPY指令对比:
- ADD包含类似tar的解压功能
- 如果单纯复制文件,Docker推荐使用COPY
VOLUME指令:(用于向基于镜像创建的容器添加卷,一个卷可以存在于一个或多个容器的特定目录,这个目录可以绕过联合文件系统,并提供共享数据、数据持久化的功能)

WORKDIR指令:(用来在从镜像创建新容器时,在容器内部设置工作目录,ENTERYPOINT或者CMD指令都会在这个目录下执行)

通常使用绝对路径,如果是相对路径,那么工作路径会一直传递下去。相对路径结果如下所示:

ENV指令:(用来设置环境变量与WORDDIR类似,在构建和运行中都生效)

USER指令:(用来指定镜像以哪个用户去运行,基于该镜像启动的容器也会以该用户去运行)

可以使用 UID GID 用户组,默认使用root用户

ONBUILD指令:(为镜像添加触发器,当一个镜像被用作其他镜像的基础镜像时,这个触发器会被执行,当子镜像在构建时,会执行触发器中的指令)

可以看下面的Dockerfile文件:

构建这个镜像之后,以这个镜像为基础构建的新的nginx镜像就会执行ONBUILD指令中复制index.html文件,nginx的主页文件就会是当前Dockerfile同级目录中的index.html的内容。
__EOF__

本文链接:https://www.cnblogs.com/jie-fang/p/7206981.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律