Dockerfile 指令

Dockerfile 是用于定义 Docker 镜像构建过程的文本文件。它包含了一系列指令,每条指令都会在镜像中创建一个新的层。以下是 Dockerfile 中常用的指令及其详细解释:

1. FROM

指定基础镜像。所有的 Dockerfile 都必须以 FROM 指令开始。

FROM ubuntu:20.04

2. RUN

在镜像构建过程中执行命令。每条 RUN 指令都会在当前镜像之上创建一个新的层。

RUN apt-get update && apt-get install -y vim

3. CMD

设置容器启动时默认执行的命令。一个 Dockerfile 中只能有一个 CMD 指令。

CMD ["python", "app.py"]

4. LABEL

为镜像添加元数据,如作者、版本、描述等。

LABEL maintainer="john@example.com" version="1.0" description="My custom Docker image"

5. EXPOSE

声明容器运行时监听的端口。

EXPOSE 8080

6. ENV

设置环境变量。

ENV MY_VAR=my_value

7. ADD

将文件、目录或远程文件 URL 复制到镜像中。ADD 指令会自动解压压缩文件。

ADD myfile.tar.gz /app/

8. COPY

将文件或目录从主机复制到镜像中。与 ADD 不同,COPY 不会自动解压文件。

COPY . /app/

9. ENTRYPOINT

设置容器启动时执行的命令。与 CMD 不同,ENTRYPOINT 指令的参数不会被命令行参数覆盖。

ENTRYPOINT ["python", "app.py"]

10. VOLUME

创建一个挂载点,用于持久化存储或共享数据。

VOLUME /data

11. USER

设置运行容器的用户。

USER myuser

12. WORKDIR

设置工作目录。后续的 RUNCMDENTRYPOINTCOPYADD 指令都会在这个目录下执行。

WORKDIR /app

13. ARG

定义构建参数。

ARG MY_ARG=default_value

14. ONBUILD

设置触发器,当该镜像被用作另一个镜像的基础镜像时,触发器指令会被执行。

ONBUILD COPY . /app

15. HEALTHCHECK

设置健康检查命令,用于检查容器的健康状态。

HEALTHCHECK --interval=30s --timeout=10s --retries=3 CMD curl -f http://localhost:8080/ || exit 1

16. SHELL

设置默认的 shell 类型。

SHELL ["/bin/bash", "-c"]

示例 Dockerfile

以下是一个综合示例,展示了多个 Dockerfile 指令的使用:

# 使用官方的 Python 基础镜像
FROM python:3.8-slim

# 设置元数据
LABEL maintainer="john@example.com" version="1.0" description="My custom Docker image"

# 设置工作目录
WORKDIR /app

# 复制依赖文件并安装依赖
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用程序代码
COPY . /app

# 暴露端口
EXPOSE 5000

# 设置环境变量
ENV FLASK_ENV=production

# 设置默认命令
CMD ["python", "app.py"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

需要重新演唱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值