21.自定义镜像

1 、Docker镜像的原理

  • Docker镜像本质是什么?

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

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

操作系统组成部分: 计算机组成原理

  • 进程调度子系统

  • 进程通信子系统

  • 内存管理子系统

  • 设备管理子系统

  • ==文件管理子系统==

  • 网络通信子系统

  • 作业控制子系统

 linux文件系统由bootfs和rootfs两部分组成。

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

  • rootfs: root文件系统,包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件

  • ·不同的linux发行版,bootfs基本一样,而rootfs不同,如ubuntu,centos等

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

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

第二层是root文件系统rootfs,称为base image: 基础镜像

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

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

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

当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器
 

2.镜像制作

自定义镜像:提供了两种方式: 第一种:基于容器来制作 第二种: 通过dockerfile文件来制作[重要]

 第一种 容器转为镜像:

步骤: 把现有的镜像--运行成一个容器---修改容器中的内容--->变成镜像---把镜像压缩文件--->交给其他人---变成本地镜像 

 

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

docker commit 04f7bf4b4fab aa_centos:1.0

 把容器变成了镜像

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

 docker save -o aa_centos.tar aa_centos:1.0

 

docker load -i 压缩文件名称

docker load -i aa_centos.tar

3、 dockerfile的概念[重要]

Dockerfile是一个文本---任意一个镜像都是通过dockerfile来制作

文件包含了一条条的指令

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

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

对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了

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

4 、Dockerfile关键字

 这些命令必须都大写

5、 Dockerfile案例

5.1 案例一

编辑dockerfile文件

[root@localhost ~]# vi centos_dockerfile ​

FROM centos:7
MAINTAINER aaa <819878771@qq.com>
RUN yum install -y vim
WORKDIR /usr
CMD ["/bin/bash"] 

 构建镜像

[root@hecs-33111 docker-files]# docker build -f centos_dockerfile -t aaa_centos:1

-f :表示dockerfile文件
-t : 镜像名称版本号 
. : 必须加上

创建容器

docker run -it --name=c3 aaa_centos:1.5

 5.2 案例二

 准备好springboot jar包并传至宿主机的根目录  

FROM java:8
LABEL author="张三"
ADD springtest-0.0.1-SNAPSHOT.jar app.jar
CMD java -jar app.jar

 docker build -f qy163_dockerfile -t qy163:1.0 .

启动并做端口映射

docker run -id --name=qy163  -p 9000:8080 qy163:1.0

可以访问成功。

6、把本地镜像上传阿里远程镜像仓库

  docker login --username=aliyun5424006047 registry.cn-hangzhou.aliyuncs.com

docker tag 1f634040778d registry.cn-hangzhou.aliyuncs.com/aaa/qy163:1.0

docker push registry.cn-hangzhou.aliyuncs.com/aaa/qy163:1.0 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值