Dockerfile的简单实现
构建第一个Dockerfile
假设该镜像实现的等同于我们在已经配置好python环境的机器上通过python hello.py
命令来运行一个python脚本
所以该Dockerfile的构建有以下步骤:
- 在桌面或其他位置新建一个文件夹,假设文件夹名为docker
- 在docker新建一个hello.py文件,hello.py已经实现所需功能
- 再在docker新建一个
Dockerfile
,注意:仅开头且必须大写
以下是Dockerfile内容:
FROM python:3.9.19-alpine3.18
COPY hello.py /hello.py
CMD python hello.py
Dockerfile语法说明
Dockerfile
是 Docker 构建镜像的描述文件,它包含了一系列指令,描述了如何从基础镜像创建一个新的 Docker 镜像。
下面是 Dockerfile
中常用指令的说明及其语法,参考自Docker Dockerfile | 菜鸟教程 (runoob.com):
Dockerfile 指令 | 说明 |
---|---|
FROM | 指定基础镜像,用于后续的指令构建。 |
MAINTAINER | 指定Dockerfile的作者/维护者。(已弃用,推荐使用LABEL指令) |
LABEL | 添加镜像的元数据,使用键值对的形式。 |
RUN | 在构建过程中在镜像中执行命令。 |
CMD | 指定容器创建时的默认命令。(可以被覆盖) |
ENTRYPOINT | 设置容器创建时的主要命令。(不可被覆盖) |
EXPOSE | 声明容器运行时监听的特定网络端口。 |
ENV | 在容器内部设置环境变量。 |
ADD | 将文件、目录或远程URL复制到镜像中。 |
COPY | 将文件或目录复制到镜像中。 |
VOLUME | 为容器创建挂载点或声明卷。 |
WORKDIR | 设置后续指令的工作目录。 |
USER | 指定后续指令的用户上下文。 |
ARG | 定义在构建过程中传递给构建器的变量,可使用 “docker build” 命令设置。 |
ONBUILD | 当该镜像被用作另一个构建过程的基础时,添加触发器。 |
STOPSIGNAL | 设置发送给容器以退出的系统调用信号。 |
HEALTHCHECK | 定义周期性检查容器健康状态的命令。 |
SHELL | 覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令。 |
详细说明:
Continue reading