Docker学习笔记02 – 作者:hu666666

说明

在本文章之前,我还写了一篇‘Docker学习笔记01’,这篇文章是对之前的补充。若没有看过之前的文章,请先看之前的文章,连接如下:

https://www.freebuf.com/articles/web/266888.html

Docker镜像讲解

什么是镜像?

镜像是一种轻量级,可执行的独立软件包,它包含运行某个软件所所需要的所有内容,包括:代码,运行时需要的库,环境变量和配置文件等

镜像加载原理

1.什么是联合文件系统?

一种分层,轻量化并且高性能的文件系统。docker基于联合文件系统,镜像可以通过分层来镜像继承,基于基本镜像,可以制作各种具体的应用镜像

2.docker镜像分层的好处

a.通过镜像分层,可以使不同的容器之间共享相同的镜像层,从而节省存储空间,并且只需要在内存中运行一份相同的镜像层,就可以为不同的容器提供服务。例如:镜像A:由镜像层1,2,4,6组成;而镜像B:由1,2,5,7,8组成。在已经下载了镜像A的情况下,下载镜像B,就只需要下载镜像层5,7,8。因为镜像层1,2已经存在于本地。运行时也一样,只需要在内存中运行一份镜像层1,2,就可以为两个容器提供服务。

b.当在升级镜像中版本时,上层镜像层中的文件就会覆盖底层中的文件,就可以使得文件的更新版本作为一个新镜像层被添加到镜像中

3.镜像分层的特点

a.docker镜像为只读文件,当容器启动时,一个新的可写层会被添加到镜像的顶部

b.运行起来的容器,由镜像层(我们直接使用docker pull下载下来的镜像,只读)和容器层(我们直接操作的层次,可读可写)组成

4.commit的使用

作用:将我们操作过的容器提交成一个镜像,我们以后就可以直接使用这个镜像创建容器(注意:该容器与原有容器的状态一致),类似于vmware虚拟机的快照功能

命令:docker commit -m=’描述信息’ -a=‘作者名’ 容器id 目标镜像:[版本]

容器数据卷技术

为什么要提出容器数据卷技术?

前面我们说过,容器之间是相互隔离的,拥有独立的文件系统。在容器中的应用或服务产生的数据,会保存在容器自身的文件系统中。当不小心把容器删了,里面的数据也会丢失。难搞………

于是,就提出了容器数据卷技术。

可以将docker容器内存储的数据,同步到本地计算机上,加以保存。实现容器中数据的持久化和同步。注意,不同容器之间也可以实现数据同步共享奥。

使用方式

命令:docker run -it -v 主机目录:容器内目录 镜像名

实例:docker run -it -v /home/ceshi:/home centos

可以使用 ’docker inspect 容器id‘ 来在mount中查看挂载情况

{

“Type”:“bind”,

“Source”:”/home/ceshi”,            #物理主机的目录

“Destination”:“/home”,           #容器内目录

“Mode”:“”,

“Propagation”:“rprivate”

}

补充知识:

1.匿名挂载:

命令:docker run -it -v 容器内路径 镜像名

docker会随机生成一个目录名,并将其挂载到物理主机的/var/lib/docker/volumes目录下

可以使用 “docker volume ls” 来查看匿名目录名                                    #方法1

也可以使用 “docker volume inspect 匿名目录名“ 来查看其在物理主机上的挂载路径                         #方法2

2.具名挂载

命令:docker run -it -v 目录名称:容器内路径 镜像名

docker会生成一个指定的目录名,并将其挂载到/var/lib/docker/volumes目录下

可以使用同上的方法(1,2)来查看具体挂载信息

3.三种挂载的区别:

-v        容器内路径名                           #匿名

-v        目录名:容器内目录名                        #具名

-v        物理主机路径:容器内路径                              #指定路径挂载

4.扩展知识

在挂载是时,可以在指定的容器后面加上 “:ro/rw” ,用来改变容器内目录或文件的读写权限

ro        #表示在容器内对挂载目录或文件只读,只可在物理主机的挂载点处进行写入

rw       #表示在容器内对挂载目录或文件具有读写权限

来源:freebuf.com 2021-03-24 21:43:26 by: hu666666

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论