Docker 容器技术初学(三)

6   Docker镜像

6.1 Docker镜像简介

一句话概括:分层构建,联合挂载。

含有启动容器所需要的文件系统以及上层应用软件及其基础环境需求。采用分层的构建机制。

Linux文件系统由bootfs和rootfs构成。

       底层的叫bootfs(引导文件系统,负责加载kernel),上层叫rootfs(容器的根文件系统)Bootfs:用于系统引导的文件系统。仅仅用于启动和引导用户的内核空间,           在系统启动完成后会被卸载以节约内存。

Rootfs:容器使用的根文件系统,比如/dev,/proc等等。

和传统的linux系统不同,容器的rootfs只挂载为只读的,而传统的linux的rootfs是在自检时只读,自检完成可写可读。Docker的rootfs只读挂载。

                                            

                                             

 

               由上边右图可知,bootfs之上,有操作系统镜像层(Debian),emacs镜像层,apache层,每1个使用到的软件都有独立的镜像层,且都是只读的,这也充分体现            了镜像的分层构建的思想,而在镜像最上层就是1个可读写层,也就是用户的所有操作只能影响可读写层,而不能影响底层镜像。启动镜像时会从下到上依次挂载启                动,这就是”联合挂载”。为了实现”联合挂载”,docker采用aufs、overlayfs、devicemapper等技术来实现。

                                                  

docker启动容器时,会先从本地获取镜像,如果本地无法找到就会从registry下载,默认情况下到docker hub下载,如果需要到私有regtistry去下载,需要指定路径。

6.2 Docker registry

Docker registry由repository和index构成。

1个registry可以包含多个repository。

Repository:顶层仓库+用户仓库

用户仓库格式:用户名/仓库名(通常就是app名)

1个仓库可以有多个tag,1个tag只属于1个仓库。

1个tag就对应1个镜像。

Index:用来维护用户信息,镜像校验,提供镜像检索接口等。

比较著名的镜像仓库:https://quay.io/

6.3 镜像制作方式

①、通过dockerfile制作

②、通过docker容器制作

③、docker hub 自动制作

6.4 基于容器制作镜像

在busybox内创建1个html页面,然后保存镜像

   (1)、在主机上:docker container start -ai mybox1

                进入bbox1后:mkdir -p /usr/share/html

                       vi /usr/share/html/index.html

                       添加一个html的内容

                       

    (2)、根据运行的bbox1容器创建镜像

                       新开1个tty窗口:

                       docker container commit mybox1

                       默认没有仓库名和tag

           (3)、给新生成的镜像打上仓库名和标签

                      docker image tag 镜像ID luoaye/mybox:v0.1-1

                                                              用户名/仓库名

                     

        (4)、上传到docker hub

                    docker login  #先登录docker hub

                    docker image push luoaye/mybox  #上传本地所有mybox的镜像

                    

                     

 

        (5)、docker container  commit参数

                      -a  指定作者

                      -c  dockfile的方式传递环境变量给镜像,从而修改镜像元数据

                      -p  创建镜像时暂停容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值