docker-Dockerfile

五、Dockerfile

5.1、 Dpcker 镜像原理

在这里插入图片描述

5.1.1、 思考

● Docker镜像本质是什么?

▶ 分层的文件系统

● Docker中一个centos镜像为什么只有200MB,而一个centos操作系 统的iso文件要几个个G?

▶ Centos的iso镜像文件包含bootfs和rootfs,而docker的 centos镜像复用操作系统的bootfs, 只有rootfs和其他镜像层

● Docker中一个tomcat镜像为什么有500MB,而一个tomcat安装包 只有70多MB?

▶ Centos的iso镜像文件包含bootfs和rootfs,而docker的 centos镜像复用操作系统的bootfs,只有rootfs和其他镜像层

5.1.2、 操作系统

● 操作系统组成部分:

▶ 进程调度子系统

▶ 进程通信子系统

▶ 内存管理子系统

▶ 设备管理子系统

▶ 文件管理子系统

▶ 网络通信子系统

▶ 作业控制子系统

● Linux文件系统由 bootfs 和 rootfs 两部分组成

在这里插入图片描述

▶ Bootfs:包含bootloader(引导加载程序)和kernel(内核)

▶ Rootfs:root文件系统,包含的就是典型Linux系统中的/dev、/prpc、/bin、/etc等标准目录和文件。

▶ 不同的inux发行版,bootfs基本一样,而rootfs不同,如ubuntu、centos等

5.1.3、 Docker镜像原理

● Docker镜像是由特殊的文件系统叠加而成。

● 最底端是bootfs,并使用宿主机的bootfs。

● 第二层是root文件系统rootfs,称为base image。

● 然后再往上可以叠加其他的镜像文件。

● 统一文件系统(Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。

● 一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的镜像成为基础镜像。

● 当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器。
在这里插入图片描述

5.1.4、镜像制作

1.容器转为镜像

容器转为镜像

docker commit 容器id 镜像名称:版本号

在这里插入图片描述
镜像转为压缩文件

docker save -o 压缩文件名称 镜像名称:版本号

在这里插入图片描述

压缩文件转为镜像

docker load -i  压缩文件名称

在这里插入图片描述

5.2、 Dockerfile概念及作用

● Dockerfile 是一个文本文件,包含了一条条的指令。

● 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像。

● 对于开发人员:可以为开发团队提供一个完全致的开发环境。

● 对于运维人员:在部署时,可以实现应用的无缝移植。

● Dochub网址: https://hub.docker.com

5.3、 Dockerfile关键字

在这里插入图片描述
在这里插入图片描述

5.4、 案例

5.4.1、自定义centos7镜像

创建步骤:

① 创建文件:

● 定义父镜像

FROM centos:7

● 定义作者信息

MAINTAINER xxxxx

● 执行安装vim命令:

RUN yum install -y vim

● 定义默认的工作目录:

WORKDIR /usr

● 定义容器启动执行的命令:

CMD /bin/bash

② 执行文件:

docker build -f ./centos_dockerfile -t qi_centos:1 .

在这里插入图片描述
在这里插入图片描述

5.4.2、定义dockerfile,发布springboot项目

创建步骤:

① 创建文件:

● 定义父镜像:

FROM   java:8

● 定义作者信息:

 MAINTAINER   xxxxx<xxxxx@xx.xxx

● 将jar包添加到容器:

AD    D   xxxxx.jar app.jar

● 定义容器启动执行的命令:

CMD   java -jar app.jar

② 执行文件:

docker bulid -f dockerfile文件路径 -t镜像名称:版本 .

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值