dockerfile指令和dockerfile文件示例基本介绍
文章目录
- dockerfile 指令
- 简单 dockerfile 示例
dockerfile 指令
FROM
必须为 dockerfile 首个命令,表示基于什么镜像去制作
LABEL
主要写一写作者联系方式之类的声明
USER
表示运行容器时候使用的用户名或 UID,默认使用 root 用户(如果用一些别的用户,去 RUN 安装软件的时候可能就安装不了)
RUN
dockerfile 中的核心部分,用来创建镜像,可以有多条 RUN 命令都是基于 FROM 基础镜像的,每个 RUN 会形成一个基础镜像层
WORKDIR
指明运行命令是在哪个目录下(这个目录都是针对于 docker 容器中的目录来说的),为 RUN CMD ENTRYPOINT ADD 这些指令配置工作目录
ENV
容器启动的环境变量
ARG
构建环境的环境变量
COPY
复制文件(从本机拷贝到容器,先写本机目录,后面容器目录写点就表示 WORKDIR 这个目录)
CMD
容器运行时执行的默认命令
ENTRYPOINT
指定容器的入口
HEALTHCHECK
容器健康状态检查
简单 dockerfile 示例
# 基于这个镜像,build 时会自动去找这个镜像
FROM 镜像名:版本
# 标签信息
LABEL maintainer="自己的邮箱"
# docker 容器启动后的环境变量,启动容器后进入就可以看到这个变量
ENV VERSION 版本号
# dockerfile 制作时候的环境变量
ARG currentPath=/home
# 默认就是 root 用户
USER root
# 制作镜像核心(用 && 连接多个命令或者写多个 RUN,一个 RUN 一个镜像层)
RUN 镜像中要执行的 linux 命令 && ... &&
# 挂在卷,可以在容器中看到这个目录
VOLUME ["/data"]
# 设置工作目录,使用了 dockerfile 制作中 ARG 的环境变量
WORKDIR $currentPath
# 把当前系统的文件 copy 到容器中(写点表示 WORKDIR 这个目录)(把文件名拷贝到点)
COPY 文件名 .
# 表示容器启动时候容器支持的端口
EXPOSE 端口号
# CMD 的一些指令可以自己写
CMD 一些指令
# 检查容器是否健康(interval 表示间隔 5s 检查一次,timeout 表示 3s 没结果就是有问题)
HEALTHCHECK --interval=5s --timeout=3s CMD curl -fs http://localhost/ || exit 1
这里也有一个图片例子
还没有评论,来说两句吧...