3、Docker镜像管理基础

Docker image

   

# docker image ls

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               4-alpine            23d561d12e92        9 days ago          35.5MB
nginx               1.14-alpine         66952fd0a8ef        2 weeks ago         16MB
busybox             latest              3a093384ac30        6 weeks ago         1.2MB

# docker exec -it kvstor1 /bin/sh
/data # ls /
bin data dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var   //完整意义上的根文件系统,是底层--> Base Image

Docker Image Layer

位于下层的镜像成为父镜像(parent image),最底层的成为基础镜像(base image)

最上层为"可读写"层,其下的均为"只读"层。

分层构建是在纯净的Debian镜像之上添加一个emacs,然后在emacs之上再添加apache。每添加一个软件都是一个独立的层次,bootfs/Kernel层在容器启动时,rootfs一旦被引导完成,会被从内存中移除。

真正的用户空间运行的只有Debian、emacs、apache这三层,同时这三层是有层级关系的。最底层的是base image,是供给一个系统的基本构成(比如bin、sbin等),但是它是最小化的,没有依赖的应用程序。

如果需要用到某些额外的应用程序的话,需要在其上面进行安装操作。比如最小化安装了centos,然后在centos上安装vim。注意对于镜像来讲,是只读的,需要创建的centos镜像是最小化,是不会动的,安装vim时会在这个镜像上生成一个新的层次,这个层次只包含vim程序。如果安装httpd的话,需要在vim层安装一个新的层次。如果要启动nginx的,就要把centos、vim和nginx这三层都启动起来。

容器启动起来之后,如果需要创建临时文件,一般是放在/tmp目录下的,但是在docker中/tmp是位于底层基础镜像中是不允许编辑的,所以就要在最上层添加可读写层。

注意:如果删除了容器,最上层的"可读写"层也会被删除。

Aufs 

镜像的分层构建和联合挂载依赖于中游文件系统的支撑才能实现,在早期用到的专有文件系统叫aufs

# docker info

Storage Driver: overlay2   //前端
Backing Filesystem: xfs    //后端

Docker Registry

启动容器时,docker daemon会试图从本地获取相关的镜像;

本地镜像不存在时,其将从Registry中下载该镜像并保存到本地;

如果没有特别指定registry,那么通常就是docker hub,如果要指向别的registry,必须在镜像的访问路径当中指明服务器地址,如果没有服务器地址,只给了仓库名/tags,那么这个镜像一定是指docker hub。

猜你喜欢

转载自www.cnblogs.com/hanshanxiaoheshang/p/10389153.html