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

本文介绍了Dockerfile的基础知识,包括其作用、语法、常用命令如RUN、ENV和WORKDIR,并提供了一个实例来说明如何编写Dockerfile。此外,还提到了编译Dockerfile的方法及相关的学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是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.1503
MAINTAINER Carson,C.J.Zeong <zcy@nicescale.com>

ENV TZ "Asia/Shanghai"
ENV TERM xterm

ADD aliyun-mirror.repo /etc/yum.repos.d/CentOS-Base.repo
ADD aliyun-epel.repo /etc/yum.repos.d/epel.repo

RUN 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 all

RUN pip install supervisor
ADD supervisord.conf /etc/supervisord.conf

RUN mkdir -p /etc/supervisor.conf.d && \
    mkdir -p /var/log/supervisor

EXPOSE 22

ENTRYPOINT ["/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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值