Docker学习系列(五):Dockerfile文件

来源:互联网 发布:百度统计怎么查看数据 编辑:程序博客网 时间:2024/04/29 17:52

什么是Dockerfile?

  • 它是一个名称为Dockerfile的文件
  • 它是一个脚本文件,由一系列命令和参数构成

Dockerfile是自动构建docker镜像的配置文件,可以让用户自定义构建docker镜像,Dockerfile中的命令非常类似linux shell下的命令

一般,Dockerfile分为4部分:
(1)基础镜像(父镜像)信息
(2)维护者信息
(3)镜像操作命令
(4)容器启动命令


Dockerfile语法

Dockerfile中的语句包括2部分:
(1)注释,以井号#开头
(2)命令+参数
下面给出一个例子,其中,第一行为“注释行”,第二行为“命令+参数行”:

# Print "Hello docker!"RUN echo "Hello docker!"

dockerfile大概有十几条命令用来构造镜像


Dockerfile实例

## MAINTAINER        Carson,C.J.Zeong <zcy@nicescale.com># DOCKER-VERSION    1.6.2## Dockerizing CentOS7: Dockerfile for building CentOS images#FROM       centos:centos7.1.1503MAINTAINER Carson,C.J.Zeong <zcy@nicescale.com>ENV TZ "Asia/Shanghai"ENV TERM xtermADD aliyun-mirror.repo /etc/yum.repos.d/CentOS-Base.repoADD aliyun-epel.repo /etc/yum.repos.d/epel.repoRUN yum install -y curl wget tar bzip2 unzip vim-enhanced passwd sudo yum-utils hostname net-tools rsync man && \    yum install -y gcc gcc-c++ git make automake cmake patch logrotate python-devel libpng-devel libjpeg-devel && \    yum install -y --enablerepo=epel pwgen python-pip && \    yum clean allRUN pip install supervisorADD supervisord.conf /etc/supervisord.confRUN mkdir -p /etc/supervisor.conf.d && \    mkdir -p /var/log/supervisorEXPOSE 22ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]

分部讲解为:
(1)注释部分

## MAINTAINER        Carson,C.J.Zeong <zcy@nicescale.com># DOCKER-VERSION    1.6.2## Dockerizing CentOS7: Dockerfile for building CentOS images#

(2)FROM centos:centos7.1.1503

其中的 centos为父镜像名称,centos7.1.1503为父镜像的tag( 如果没有指定 tag ,则默认tag是latest,如果都没有则会报错)。

作为dockerfile的第一条指令,用来设置基本的镜像(基于父镜像),为后续的命令使用;

(3)MAINTAINER Carson,C.J.Zeong <zcy@nicescale.com>

MAINTAINER命令用来指定维护者的姓名和联系方式

(4)ENV TZ “Asia/Shanghai”

ENV(environment)命令用来设置环境变量,一个Dockerfile中可以写多个,本句的目的是:设置docker容器的时区为Shanghai


MAINTAINER Kai Arulkumaran <design@kaixhin.com>

RUN 命令

RUN命令会在FROM指定的镜像里执行任何命令,然后提交(commit)结果,提交的镜像会在后面继续用到。

ENV 命令

用于设置环境变量
例子:

 ENV PYTHONPATH=/root/caffe/python:$PYTHONPATH

WORKDIR 命令

设置working directory


如何编译dockerfile

sudo docker build -it imageName .

Dockerfile相关资料

cSphere Docker 实训课程

登陆后可以免费观看,课程网址:https://csphere.cn/training
同时,还有课程内容记录的文档,文档地址:http://git.oschina.net/dockerf/docker-training


0 0
原创粉丝点击