温馨提示×

Dockerfile语法基础是什么

小樊
45
2025-11-08 15:37:12
栏目: 智能运维

Dockerfile 是一个文本文件,其中包含了一系列用于构建 Docker 镜像的指令和参数。以下是 Dockerfile 的基本语法和常用指令:

基本语法

  1. 指令:每条指令必须是大写字母开头,后面跟随零个或多个参数。
  2. 参数:参数通常是以空格分隔的值。
  3. 多行指令:如果一行指令太长,可以使用反斜杠 \ 进行换行。
  4. 注释:使用 # 开头的行会被 Docker 忽略,用于添加注释。

常用指令

  1. FROM:指定基础镜像。

    FROM ubuntu:20.04
    
  2. RUN:执行命令。

    RUN apt-get update && apt-get install -y nginx
    
  3. COPY:将文件或目录从构建上下文复制到镜像中。

    COPY . /app
    
  4. ADD:类似于 COPY,但可以自动解压 tar 文件,并支持 URL。

    ADD https://example.com/file.tar.gz /app
    
  5. CMD:指定容器启动时执行的命令。

    CMD ["nginx", "-g", "daemon off;"]
    
  6. ENTRYPOINT:指定容器启动时的入口点。

    ENTRYPOINT ["nginx"]
    
  7. EXPOSE:声明容器运行时监听的端口。

    EXPOSE 80
    
  8. ENV:设置环境变量。

    ENV MY_VAR=value
    
  9. VOLUME:创建一个挂载点。

    VOLUME ["/data"]
    
  10. USER:指定运行容器时的用户。

    USER nobody
    
  11. WORKDIR:设置工作目录。

    WORKDIR /app
    
  12. ARG:定义构建时变量。

    ARG VERSION=latest
    

示例 Dockerfile

# 使用 Ubuntu 20.04 作为基础镜像
FROM ubuntu:20.04

# 设置环境变量
ENV MY_VAR=value

# 更新包列表并安装 Nginx
RUN apt-get update && apt-get install -y nginx

# 将当前目录下的所有文件复制到容器的 /app 目录
COPY . /app

# 设置工作目录
WORKDIR /app

# 暴露端口 80
EXPOSE 80

# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]

通过这些基本指令,你可以创建一个自定义的 Docker 镜像,并根据需要进行扩展和修改。

0