dockerfile
概述 dockerfile是用来构建docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
docker commit是在现有镜像进行人工干预,进行了功能加强,然后commit docker commit 缺点:对于大量变化难以逐个commit
dockerfile就是一次性将这些功能加强的修改集成为一个list。要加什么直接改这个list就可以了
如图,dockerfile是独立于docker之外的
dockerfile官网文档 (opens new window)
# 总体步骤
- 编写Dockerfile文件
- docker build构建镜像
- docker run运行容器
# 编写Dockerfile
- 大写保留字指令(FROM,CMD...),且后面至少跟一个参数
- 顺序执行指令,#为注释
- 每条指令会创建一层新镜像层并提交
指令 | 意义 |
---|---|
FROM | 基础镜像 |
RUN | 容器构建时运行(docker build)时的命令 shell和exec两种格式 |
EXPOSE | 容器对外暴露的端口 |
ENV | 设置环境变量,该变量可以在后续任何RUN中使用 |
WORKDIR | 终端登录进容器后的工作目录,一般和ENV一起使用 |
USER | 镜像以什么用户去执行,默认root |
VOLUME | 数据卷,数据保存的持久化工作 |
ADD | 将宿主机目录下的文件拷贝到镜像,且会自动处理URL和解压tar压缩包 |
COPY | 类似ADD,拷贝源文件和源目录到镜像目标路径中,作用和docker cp一样 |
CMD | 容器启动后要做的事情,只用最后一个生效 |
ENTRYPOINT |
编辑 (opens new window)