~阿弥陀佛~

人生能有多少天是按照自己的想法去活着

docker镜像管理

关于docker镜像

l  Docker镜像含有启动容器所需要的文件系统及其内容,其用于创建并启动docker容器。

l  采用分层构建机制,最底层为bootts,其次为rootfs(底层用到的aufs/btrfs或者orverlay这样的文件系统来确保引导启动一个用户空间)

Bootfs: 用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后会被卸载以节约内存资源

Rootfs: 位于bootfs之上,表现为docker容器的根文件系统;

       传统模式中,系统启动之时,内核挂载rootfs会首先将其挂载为只读模式,完整性自检完成后将其重新挂载为读写模式

        Docker中,rootfs由内核挂载为只读模式,而后通过联合挂载技术额外挂载一个可写层

 

Docker image layer

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

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

Docker redistry

启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,其将从registry中下载该镜像并保存到本地;*(registry如果没有特别指定通常是dockerhub,如果要指定别的registry必须在镜像的访问路径当中给明服务器地址,如果没给地址只指定了仓库名只指定了tag,那么这个镜像一定是dockerhub的镜像)

 

Docker registry分类

l  用于保存docker镜像,包括镜像的层次结构和元数据

l  用户可自建registry,也可使用官方的docker hub

l  分类

Sponsor registry: 第三方的registry,供客户和docker社区使用

Mirror Registry: 第三方的registry,只让客户使用

Vendor Registry: 由发布docker镜像的供应商提供的registry

Private Registry: 通过设有防火墙和额外的安全层的私有实体提供的registry

 

Registry组成(repository and index)

Repository

  由某特定的docker镜像的所有迭代版本组成的镜像仓库

  一个Registry中可以存在多个Repository

      Repository可分为顶层仓库和用户仓库

      用户仓库名称格式为“用户名/仓库名”

  每个仓库可以包含多个tag,每个标签对应一个镜像

Index

   维护用户账户,镜像的校验以及公共命名空间的信息

   相当于为registry提供了一个完成用户认证等功能的检索接口

 

Docker registry

   Docker registry中的镜像通常由镜像开发人员制作,而后推送到公共或私有registry上保存,供其他人员使用,例如 部署到生产环境;

 

镜像制作

1.     Dockerfile

2.     基于容器制作 、

[root@node-2 ~]# docker run –name b1 -it busybox

/ # ls /

bin   dev   etc   home  proc  root  sys   tmp   usr   var

/ # mkdir -p /data/html/

/ # vi /data/html/index.html  (<h1>busybox httpd server<h1>)

[root@node-2 ~]# docker commit -p b1   *(创建镜像的时候尽量暂停容器)

sha256:9b9160faaa5d502d89c6fd04c3d15da7c08e3fb77025a786ecf3c670c3f57917

[root@node-2 ~]# docker images

REPOSITORY                           TAG             IMAGE ID       CREATED         SIZE

<none>                               <none>          9b9160faaa5d   9 seconds ago   1.24MB

busybox                              latest          42b97d3c2ae9   10 days ago     1.24MB

 

[root@node-2 ~]# docker tag 9b9160faaa5d mageedu/httpd:v0.1-1  (假设上传到dockerhub上的megeedu账号中的httpd仓库中,标签为v0.1-1)

[root@node-2 ~]# docker images

REPOSITORY                           TAG             IMAGE ID       CREATED         SIZE

mageedu/httpd                        v0.1-1          9b9160faaa5d   4 minutes ago   1.24MB

 

[root@node-2 ~]# docker tag mageedu/httpd:v0.1-1 magedu/httpd:latest  (引用第二个标签,因此删除一个标签只是删除了一个引用类似于硬链接)

[root@node-2 ~]# docker images

REPOSITORY                           TAG             IMAGE ID       CREATED         SIZE

magedu/httpd                         latest          9b9160faaa5d   7 minutes ago   1.24MB

mageedu/httpd                        v0.1-1          9b9160faaa5d   7 minutes ago   1.24MB

[root@node-2 ~]# docker image rm magedu/httpd:latest

Untagged: magedu/httpd:latest

[root@node-2 ~]#

Next Post

Previous Post

Leave a Reply

© 2021 ~阿弥陀佛~

ICP备案号: 京ICP备19038630号

版权所有@ 王力翔

耗时 0.196 秒 | 查询 41 次 | 内存 22.34 MB