云计算核心技术Docker教程:Dockerfile文件使用

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

成都创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为江口企业提供专业的成都做网站、网站设计,江口网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

以定制一个 nginx 镜像为例(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件)

在一个空目录下,新建一个名为 Dockerfile 文件,并在文件内添加以下内容:

FROM nginx

RUN echo \'这是一个本地构建的nginx镜像\' > /usr/share/nginx/html/index.html

FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。

RUN:用于执行后面跟着的命令行命令。有以下俩种格式:

shell 格式:

RUN <命令行命令>

# <命令行命令> 等同于,在终端操作的 shell 命令。

或者exec 格式:

RUN [可执行文件, 参数1, 参数2]

# 例如:

# RUN [./test.php, dev, offline] 等价于 RUN ./test.php dev offline

在 Dockerfile 文件的存放目录下,执行构建动作。

以下示例,通过目录下的 Dockerfile 构建一个 nginx:test(镜像名称:镜像标签)。

# docker build -t nginx:test .

.表示上下文路径

上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

相关阅读:

云计算核心技术Docker教程: Docker 容器连接

云计算核心技术Docker教程: Docker 容器互联

云计算核心技术Docker教程: Docker 仓库管理


当前标题:云计算核心技术Docker教程:Dockerfile文件使用
标题链接:http://ybzwz.com/article/cgpphc.html