物联网学习日记11

1.apk add
解析:add命令从仓库中安装最新软件包,并自动安装必须的依赖包,也可以从第三方仓库添加软件包。

2.jq
解析:A lightweight and flexible command-line JSON processor

3.COPY命令
解析:如果仅仅是把本地的文件拷贝到容器镜像中,COPY命令是最合适不过的。

4.FROM scratch
解析:不以任何镜像为基础。

5.ENTRYPOINT
解析:功能是启动时的默认命令。

6.VOLUME
解析:可实现挂载功能,可以将内地文件夹或者其它容器中的文件夹挂在到这个容器中。

7.COPY . .
解析:That will copy the current working directory of your local machine into the current working directory of the container.

8.busybox镜像
解析:scratch是个空镜像,如果希望镜像里可以包含一些常用的Linux工具,busybox镜像是个不错选择,镜像本身只有1.16M,非常便于构建小镜像。

9.apk add --no-cache
解析:在执行apt-get install -y时增加选项-- no-install-recommends ,可以不用安装建议性[非必须]的依赖,也可以在执行apk add 时添加选项–no-cache 达到同样效果。

10.清理镜像缓存文件
解析:
[1]Ubuntu或Debian可以使用rm -rf /var/lib/apt/lists/*清理镜像中缓存文件
[2]CentOS等系统使用yum clean all命令清理

11.多个FROM指令的意义
解析:
[1]每一条FROM指令都是一个构建阶段,多条FROM就是多阶段构建,虽然最后生成的镜像只能是最后一个阶段的结果,但是,能够将前置阶段中的文件拷贝到后边的阶段中,这就是多阶段构建的最大意义。
[2]最大的使用场景是将编译环境和运行环境分离。

12.FROM scratch
解析:
[1]FROM scratch会使用一个完全干净的文件系统,不包含任何文件。
[2]FROM scratch可以使得最后生成的镜像最小化。

13.Docker ADD
解析:ADD将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包。

14.VOLUME
解析:容器数据卷,用于数据保存和持久化工作。

15.CMD
解析:指定一个容器启动时要运行的命令,Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换。

16.ENTRYPOINT
解析:指定一个容器启动时要运行的命令,ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数。

17.ONBUILD
解析:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发。

18.Dockerfile
解析:Dockerfile是一个文本文件,里面的内容是一条条的指令,每一条指令将会构建一层,因此每条指令的内容就是在描述该层应当如何创建。

19.WORKDIR指定工作目录
解析:
[1]当使用WORKDIR指定工作路径后,以后的每一层的当前目录都会被改为工作目录,如果目录不存在,WORKDIR会帮助创建目录。
[2]如果需要改变以后各层的工作目录的位置,只需要再使用WORKDIR指令即可。

20.USER[指定执行用户]
解析:指定build或者启动的时候,用户在RUN CMD ENTRYPONT执行的时候的用户。

21.LABEL
解析:LABEL指令将元数据添加到镜像。LABEL是键值对。使用语法:

LABEL <key>=<value> <key>=<value> <key>=<value> ...

22.Dockerfile中ENTRYPOINT和CMD
解析:
[1]只能有一个ENTRYPOINT指令,如果有多个ENTRYPOINT指令则以最后一个为准。
[2]只能有一个CMD指令,如果有多个CMD指令则以最后一个为准。
[3]ENTRYPOINT指令或CMD指令,至少必有其一。

23.docker run中的-i -t -d
解析:
[1]-i:以交互模式运行容器,通常与-t同时使用
[2]-t:为容器重新分配一个伪输入终端,通常与-i同时使用
[3]-d:后台运行容器,并返回容器ID

24.TOML的目标
解析:TOML的目标是成为一个极简的配置文件格式。TOML被设计成可以无歧义地被映射为哈希表,从而被多种语言解析。

25.toml数据类型
解析:字符串,整数,浮点数,布尔值,日期时刻,数组,或行内表。

参考文献:
[1]docker-compose.yml的使用:https://www.cnblogs.com/ray-mmss/p/10868754.html
[2]jq:https://pkgs.alpinelinux.org/package/edge/main/x86/jq
[3]Dockerfile多阶段构建:https://maichong.io/help/docker/dockerfile-multi-stage.html
[4]LongTengDao/TOML:https://github.com/LongTengDao/TOML/wiki

发布了400 篇原创文章 · 获赞 423 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/shengshengwang/article/details/104664698