Docker(二):Dockerfile使用介绍

作者:媒体转发 时间:2018-04-23 09:39

字号
有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研

上一篇文章Docker(一):Docker入门教程介绍了 Docker 基本概念,其中镜像、容器和 Dockerfile 。我们使用 Dockerfile 定义镜像,依赖镜像来运行容器,因此 Dockerfile 是镜像和容器的关键,Dockerfile 可以非常容易的定义镜像内容,同时在我们后期的微服务实践中,Dockerfile 也是重点关注的内容,今天我们就来一起学习它。

Docker(二):Dockerfile使用介绍

首先通过一张图来了解 Docker 镜像、容器和 Dockerfile 三者之间的关系。

Docker(二):Dockerfile使用介绍

通过上图可以看出使用 Dockerfile 定义镜像,运行镜像启动容器。

Dockerfile 概念

Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了 Dockerfile,当我们需要定制自己额外的需求时,只需在 Dockerfile 上添加或者修改指令,重新生成 image 即可,省去了敲命令的麻烦。

Dockerfile 文件格式

Dockerfile文件格式如下:

##  Dockerfile文件格式 

 

# This dockerfile uses the ubuntu image 

# VERSION 2 - EDITION 1 

# Author: docker_user 

# Command format: Instruction [arguments / command] .. 

  

# 1、第一行必须指定 基础镜像信息 

FROM ubuntu 

  

# 2、维护者信息 

MAINTAINER docker_user docker_user@email.com 

  

# 3、镜像操作指令 

RUN echo "deb  raring main universe" >> /etc/apt/sources.list 

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

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf 

  

# 4、容器启动执行指令 

CMD /usr/sbin/nginx 

Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令。一开始必须要指明所基于的镜像名称,接下来一般会说明维护者信息;后面则是镜像操作指令,例如 RUN 指令。每执行一条RUN 指令,镜像添加新的一层,并提交;最后是 CMD 指令,来指明运行容器时的操作命令。

构建镜像

docker build 命令会根据 Dockerfile 文件及上下文构建新 Docker 镜像。构建上下文是指 Dockerfile 所在的本地路径或一个URL(Git仓库地址)。构建上下文环境会被递归处理,所以构建所指定的路径还包括了子目录,而URL还包括了其中指定的子模块。

将当前目录做为构建上下文时,可以像下面这样使用docker build命令构建镜像:

docker build . 

Sending build context to Docker daemon  6.51 MB 

... 

说明:构建会在 Docker 后台守护进程(daemon)中执行,而不是CLI中。构建前,构建进程会将全部内容(递归)发送到守护进程。大多情况下,应该将一个空目录作为构建上下文环境,并将 Dockerfile 文件放在该目录下。

在构建上下文中使用的 Dockerfile 文件,是一个构建指令文件。为了提高构建性能,可以通过.dockerignore文件排除上下文目录下不需要的文件和目录。

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
关键词 >>Dockerfile Docker 镜像
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接