docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker镜像

Docker镜像加载原理

作者:Pakho`

Docker镜像是Docker容器运行的基础,没有Docker镜像,就不可能有Docker容器,这也是Docker的设计原则之一 ,本文给大家介绍Docker镜像加载原理,感兴趣的朋友一起看看吧

Docker镜像

镜像是什么?

远程仓库下载

朋友拷贝

自己制作一个镜像 DockerFile

Docker镜像加载原理

UnionFS(联合文件系统)

Docker镜像加载原理

在这里插入图片描述

平时我们安装虚拟机的CentOS都是好几个G,为什么Docker才200M?

在这里插入图片描述

[root@docker ~]# docker pull redis 
Using default tag: latest
latest: Pulling from library/redis
69692152171a: Already exists 
a4a46f2fd7e0: Pull complete 
bcdf6fddc3bd: Pull complete 
2902e41faefa: Pull complete 
df3e1d63cdb1: Pull complete 
fa57f005a60d: Pull complete 
Digest: sha256:7e2c6181ad5c425443b56c7c73a9cd6df24a122345847d1ea9bb86a5afc76325
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest

在这里插入图片描述

理解分层的含义

在这里插入图片描述 

在添加额外的镜像层的同时,镜像始终保持是当前所有镜像的组合,理解这一点非常重要。下图中举了一个简单的例子,每个镜像层包含3个文件,而镜像包含了来自两个镜像层的6个文件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

分层下载的好处

假设有些应用的层是相同的,就可以直接复用!

特点

在这里插入图片描述 

Commit镜像

docker commit 提交容器成为一个新的副本

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

#运行一个默认的tomcat镜像
[root@docker ~]# docker run -it -p 8080:8080  tomcat

[root@docker ~]# docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED          STATUS          PORTS                                       NAMES
792ca37197e8   tomcat    "catalina.sh run"   34 seconds ago   Up 32 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   upbeat_mcnulty

[root@docker ~]# docker exec -it 792ca37197e8 /bin/bash
#发现这个默认的tomcat 是没有webapps应用,是因为镜像的原因,官方的镜像默认webapps下没有文件,自己拷贝进去基本的文件
root@792ca37197e8:/usr/local/tomcat# cp -r webapps.dist/* webapps

#浏览器访问,测试成功
http://192.168.100.100:8080/

#提交修改后的容器成为一个新的镜像
[root@docker ~]# docker commit -a="pakho" -m="add webapps app" 792ca37197e8 tomcat02:1.0
sha256:d6d429f9d2ba25af8f66bd3e7a7de489cf2219828ea755ce1d0a1a7816c27731

[root@docker ~]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED          SIZE
tomcat02              1.0       d6d429f9d2ba   28 seconds ago   672MB

Docker镜像(Images)总结

在这里插入图片描述

以上就是Docker镜像原理的详细内容,更多关于Docker镜像的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文