docker(四)---dockerfile 编写&&优化

本文详细介绍了Dockerfile的分层原理,包括基于aufs的Docker镜像分层,涉及的技术如bootfs和rootfs。接着,讨论了Dockerfile的编写,包括基本指令、文件结构和编写示例。最后,探讨了Dockerfile的优化策略,如减少RUN指令、丢弃无用输出和多阶段构建等。
摘要由CSDN通过智能技术生成

目录

一、dockerfile分层原理

1.docker镜像分层(基于aufs构建)

2.涉及技术

二、dockerfile编写

1.dockerfile操作指令

2.编写dockerfile文件

2.1 例1:

2.2 例2:

 三、dockerfile优化

1、优化方式

2、优化nginx-dockerfile

总结


一、dockerfile分层原理

1.docker镜像分层(基于aufs构建)

  • Docker镜像位于bootfs之上
  • 每一层镜像的下一层成为父镜像
  • 第一层镜像成为base image(操作系统环境镜像>容器层(可读可写),在最顶层( writable)
  • 容器层以下都是readonly
  • Linux文件系统之aufs
  • aufs是一种可叠加式的文件系统,全称是advanced multi-layered unification filesystem,主要功能是把多个文件夹的内容合并到一起,提供一个统一的视图, 主要用于各个Linux发行版的livecd中,以及docker里面用来组织image

2.涉及技术

bootfs(boot file system)
主要包含bootloader和kernel
bootloader:主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs

这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs

在linux操作系统中(不同版本的linux发行版本),linux加载bootfs时会将rootfs设置为read-only,系统自检后会将只读改为读写,让我们可以在操作系统中进行操作

 rootfs (root file system)
在bootfs之上(base images,例如centos 、ubuntu)
包含的就是典型 Linux 系统中的 /dev, /proc, /bin, /etc 等标准目录和文件
rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等

二、dockerfile编写

  • Dockerfile是由一组指令组成的文件

  • Dockerfile结构四部分

①基础镜像信息:指定操作系统镜像是什么镜像、什么版本
②维护者信息
③镜像操作指令
④容器启动时执行指令:启动容器的时候,执行的脚本、命令参数等等

  • Dockerfile每行支持一条指令,每条指令可携带多个参数,支持使用以“#”号开头的注释

1.dockerfile操作指令

指令 含义
FROM [镜像] 指定新镜像所基于的镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条FROM指令
MAINTAINER [名字] 说明新镜像的维护人信息
RUN [命令] 在所基于的镜像执行命令,并提交到新的镜像中
CMD [“要运行的程序”,“参数1”、“参数2”] 指令启动容器时要运行的命令或者脚本,Dockerfile只
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值