Dockerfile详解

简介: Dockerfile详解

Dockerfile概念:


Docker 守护进程会解析整个 dockerfile 文件内容,执行一条条的指令,Docker 守护进程会翻

译成真正的 linux 指令

Dockerfile中下面是常用参数:

FROM                      镜像名称
MAINTAINER(弃用)          创建人描述  设置镜像的作者信息
LABEL                     设置镜像的标签,用法灵活
ARG                        设置编译镜像时加入的参数,若想保存为环境变量,就是用ENV,若只想在Dockerfile中临时用一下,就用ARG
USER                       设置运行RUN CMD ENTRYPOINT的用户名
RUN                        容器构建时需要运行的命令
EXPOSE                   当前容器对外暴露出的端口
WORKDIR                  指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
ENV                       构建环境变量
ADD                      拷贝文件到容器内,并会自动处理URL网上下载文件和解压tar压缩包
COPY                    只能拷贝
VOLUME                  容器数据卷 用于数据保存和持久化工作
CMD                     指定一个容器启动时要运行的命令,可以指定多个,但只有最后一个生效
ENTRYPOINT              指定一个容器启动时要运行的命令,会追加参数
ONBUILD                当构建一个被继承的dockerfile时运行改命令,父镜像会被子继承后,触发
STOPSIGNAL             设置容器的退出信号量

使用 Dockerfile 构建镜像时最好是将 Dockerfile 放置在一个新建的空目录下。然后将构建镜像所需要的文件添加到该目录中。为了提高构建镜像的效率,你可以在目录下新建一个.dockerignore 文件来指定要忽略的文件和目录。.dockerignore 文件的排除模式语法和 Git 的.gitignore 文件相似。

Build 一个镜像时使用,可以从 Dockerfile 所在的目录(如一些 jar 包)复制到镜像中云,COPY与 ADD 都可以实现,只是 ADD 功能更强大,可以从网络上下载文件,如果设置了 WORKDIR,则 RUN、CMD、COPY、ADD 会把文件复制到该目录下,但当没有指定呢?文件复制到哪了?这里要看当前工作目录,即 WORKDIR 指令指定目录,还有-v 命令指定的目录,如果都没有指定则是根目录,即“/”。

相关文章
|
25天前
|
应用服务中间件 nginx Docker
Dockerfile
【11月更文挑战第01天】
50 10
|
1月前
|
关系型数据库 MySQL Linux
DockerFile的介绍
Docker操作 (九)
|
1月前
|
Java 应用服务中间件 Docker
|
6月前
|
Java Linux 开发工具
|
11月前
|
缓存 Shell Go
dockerfile介绍与使用
dockerfile介绍与使用
102 1
|
缓存 Shell C语言
Dockerfile完全指南
Dockerfile完全指南
307 2
|
Linux 应用服务中间件 开发工具
dockerfile
dockerfile
105 0
|
Go 容器
一文了解 Dockerfile 鲜为人知的一面
Hello folks,今天给大家介绍一下如何在 Dockerfile 中进行 Go 代码编写及运用(备注:此处暂不关注所部署的容器大小及性能问题)。
93 0
|
缓存 Shell Go
DockerFile文件详解
DockerFile文件详解
203 0
|
应用服务中间件 Shell nginx