Docker技术入门与实战笔记(六)

本文是我在学习《Docker技术入门与实战》第3版(杨保华 戴王剑 曹亚仑编著)时所做的笔记,有许多描述不清楚的地方,建议自行购买学习。

使用Dockerfile创建镜像
基本结构

Dockerfile主题内容分为四部分:
1、基础镜像信息;
2、维护者信息;
3、镜像操作指令;
4、容器启动时执行指令。
Dockerfile支持以#开头的注释行。

例如之前构建镜像用的Dockerfile:

# 基础镜像
From ubuntu
#  维护者信息和版本号
LABEL verison="1.1" maintainer="duanhun"
# 镜像操作指令
RUN apt-get update && \
	apt-get install -y git && \
	apt-get install -y nginx && \
	apt-get clean && \
	rm -rf /var/lib/apt/lists/*
# 之前没用到的容器启动时执行指令,也就是说之前安装的nginx就没启动,之前也只是验证了下版本
CMD /usr/sbin/nginx

指令说明
Dockerfile中指令分为配置指令和操作指令。

配置指令
1、ARG
定义创建镜像过程中使用的变量。
格式为ARG [=]
执行docker build时可通过-build-arg[=]来为变量赋值。
Docker内置了一些镜像创建变量,用户可以直接使用而无须声明,包括(不区分大小写)HTTP_PROXY、HTTPS_PROXY、FTP_PROXY、NO_PROXY。

2、FROM
指定所创建镜像的基础镜像。
为了保证镜像精简,尽量选用体积较小的镜像如Alpine或Debian作为基础镜像。

3、LABEL
LABEL 指令可以为生成的镜像添加元数据标签信息。
格式为LABEL <key>=<value> <key>=<value> …

4、EXPOSE
声明镜像内服务监听的端口。
格式为EXPOSE <port> [<port>/<protocol>…]
该指令只是起到声明作用,并不会自动完成端口映射。

5、ENV
指定环境变量,在镜像生成过程中会被后续RUN指令使用,在镜像启动的容器中也会存在。
格式与LABEL一样。
指定的环境变量会被命令参数docker run --env <key>=<value> 覆盖。

6、ENTRYPOINT
指定镜像的默认入口命令,该入口命令会在启动容器时作为根命令执行。
在运行时可以被–entrypoint参数覆盖掉。

7、VOLUME
创建一个数据卷挂载点。

8、USER
指定运行容器时的用户名或UID。

9、WORKDIR
为后续的RUN、CMD、ENTRYPOINT指令配置工作目录。

10、ONBUILD
指定当基于所生成镜像创建子镜像时,自动执行的操作指令。

11、STOPSIGNAL
指定所创建镜像启动的容器接收退出的信号值。

12、HEALTHCHECK
配置所启动容器如何进行健康检查。

13、SHELL
指定其他命令所使用shell时的默认shell类型。

操作指令
1、RUN
运行指定命令。
格式为RUN 或RUN [“executable”, “param1”, “param2”]。前者默认将在shell终端中运行;后者则使用exec执行,不会启动shell环境。

2、CMD
指令用来指定启动容器时默认执行的命令。

3、ADD
添加内容到镜像。
格式ADD <src> <dest>
将复制指定的<src>路径下的内容到容器中的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值