admin 管理员组

文章数量: 1184232


2024年1月5日发(作者:splatter什么意思啊)

dockerfile常用指令、语法格式及功能说明

Dockerfile 是用于构建 Docker 镜像的脚本文件,其中包含了一系列指令和参数,用于描述镜像的构建步骤。以下是 Dockerfile 中一些常用的指令、语法格式及其功能说明:

常用指令:

1. FROM:

```dockerfile

FROM image[:tag] [AS name]

```

- 功能: 指定基础镜像。

- 示例: `FROM ubuntu:20.04`

2. RUN:

```dockerfile

RUN command

```

- 功能: 在镜像中运行命令。

- 示例: `RUN apt-get update && apt-get install -y package`

3. COPY:

```dockerfile

COPY source destination

```

- 功能: 将文件或目录从构建上下文复制到容器文件系统中。

- 示例: `COPY . /app`

4. WORKDIR:

```dockerfile

WORKDIR /path/to/workdir

```

- 功能: 设置工作目录。

- 示例: `WORKDIR /app`

5. CMD:

```dockerfile

CMD ["executable","param1","param2"]

CMD command param1 param2

```

- 功能: 定义容器启动时运行的默认命令。

- 示例: `CMD ["npm", "start"]`

6. EXPOSE:

```dockerfile

EXPOSE port

```

- 功能: 声明容器运行时监听的端口。

- 示例: `EXPOSE 80`

7. ENV:

```dockerfile

ENV key=value ...

```

- 功能: 设置环境变量。

- 示例: `ENV NODE_ENV production`

8. ARG:

```dockerfile

ARG name[=default]

```

- 功能: 定义构建参数。

- 示例: `ARG VERSION=latest`

9. ENTRYPOINT:

```dockerfile

ENTRYPOINT ["executable", "param1", "param2"]

ENTRYPOINT command param1 param2

```

- 功能: 设置容器启动时执行的命令,可与 CMD 搭配使用。

- 示例: `ENTRYPOINT ["npm", "start"]`

10. VOLUME:

```dockerfile

VOLUME ["/data"]

```

- 功能: 声明挂载点,用于存储持久化数据。

- 示例: `VOLUME ["/var/log"]`

语法格式:

- 每个指令都会创建一个新的镜像层。

- 指令可以使用反斜杠 `` 进行换行。

- 注释以 `#` 开头。

注意事项:

- 指令的顺序很重要,尽量将频繁更改的指令放在底部,以最大化缓存。

- 使用多个 RUN 指令时,可以使用 `&&` 连接命令,减小镜像大小。


本文标签: 功能 指令 镜像 容器