使用Dockerfile创建镜像

1 基本结构

Dockerfile由一行行命令语句组成,支持以#开头的注释行
一般,Dockerfile主体内容分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。
示例:

# escape=\ (backslash)
# This dockerfile uses the ubuntu:xeniel image
# VERSION 2 - EDITION 1
# Author: docker_user
# Command format: Instruction [arguments / command] ..

# Base image to use, this must be set as the first line
FROM ubuntu:xeniel

# Maintainer: docker_user <docker_use at email.comr> (@docker_user)
LABEL maintainer docker_user<docker_user@email.com>

#Commands to update the image
RUN echo "deb http://arhcive.ubuntu.com/ubuntu/ xeniel main universe" >> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

#Commands when creating a new container
CMD /usr/sbin/nginx

说明:每运行一条RUN指令,镜像添加新的一层,并提交。最后CMD指令来指定运行容器时的操作命令。

2 指令说明

Dockerfile中指令的一般格式为 INSTRUCTION arguments,包括“配置指令”(配置镜像信息)和“操作指令”(具体执行操作),如下表

分类 指令 说明
配置指令 ARG 定义创建镜像过程中使用的变量
FROM 指定所创建镜像的基础镜像
LABEL 为生成的镜像添加元数据标签信息
EXPOSE 声明镜像内服务监听的端口
ENV 指定环境变量
VOLUME 创建一个数据卷挂载点
USER 指定运行容器时的用户名或UID
WORKDIR 配置工作目录
ONBUILD 创建子镜像时,指定自动执行的操作指令,类似java父类的构造方法,子类继承父类,首先执行父类的构造方法 ,只在创建子镜像时有用
STOPSIGNAL 指定退出的信号值
HEALTHCHECK 配置所启动容器如何进行健康检查
SHELL 指定默认shell类型
操作指令 RUN 运行指定命令
CMD 启动容器时指定默认执行的命令
ADD 添加内容到镜像
COPY 复制内容到镜像

2.1 配置指令

1. ARG
定义创建镜像过程中使用的变量,格式为:ARG <name> [=<default value>].
在执行docker buil时,可以通过-build-arg[=]来为变量赋值,当镜像编译成功后,ARG指定的变量将不再存(ENV指定的变量将在镜像中保留)。
Docker 内置镜像创建变量,可直接使用而无需声明,包括(不区分大小写)HTTP_PROXY,HTTPS_PROXY,FTP_PROXY,NO_PROXY。

2. FROM
指定所创建镜像的基础镜像,格式为:FROM <image> [AS <name>] 或 FROM <image>:<tag> [AS <name>] 或 FROM <image>@<digest> [AS <name>]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值