Docker中容器和镜像的关系【通俗易懂】

发布时间:2020-09-07 08:35:46 作者:zancun
来源:网络 阅读:387

docker中容器和镜像的关系是什么?

最近学习了docker,大多人感觉容器和镜像学的有点模糊。

特别是镜像和容器,感觉完全分不开,所以在此学习,然后总结了一下,便于后面的学习。

这是我总结的镜像总体层次架构:

VM/宿主机——>操作系统(如:centos)——>镜像img(包含完整的系统如linux(ubuntu)、mysql、apache、nginx等。镜像是由一层层的系统文件组成。)安装——>创建容器——>创建应用(APP)。

一个完整的docker由以下几部分组成:

DockerClient客户端

Docker Daemon守护进程

Docker Image镜像

DockerContainer容器


解决什么问题:容器——>镜像——>tar文件

到了测试环境恢复的时候:tar——>镜像——>容器

镜像和容器的区别:镜像可以理解为java类,容器可以理解为java中的对象。即,镜像:Java类;容器:java对象。

通过类可以创建很多对象,也就是说:镜像可以创建很多个容器。


另外:

docker的整个生命周期有三部分组成:镜像(image)+容器(container)+仓库(repository)。


                                           docker 容器=镜像+可读层

容器是由镜像实例化而来。


简单来说,镜像是文件,容器是进程。

容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件。 


docker 的镜像概念类似虚拟机的镜像。是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。

docker利用容器来运行应用:docker容器是由docker镜像创建的运行实例。

docker容器类似虚拟机,可以执行包含启动,停止,删除等。每个容器间是相互隔离的。容器中会运行特定的运用,包含特定应用的代码及所需的依赖文件。可以把容器看作一个简易版的linux环境(包含root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。


Docker中容器和镜像的关系【通俗易懂】

 

在Docker的生命周期中,最核心的两个部分,一个是镜像 Images,一个是容器 Containers。

镜像运行起来就是容器。

容器服务运行的过程中,基于原始镜像做了改变,比如安装了程序,添加了文件,也可以提交回去 (commit)成为镜像。

例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了mysql或用户需要的其他应用程序。

docker镜像实际上是由一层一层的系统文件组成,这种层级的文件系统被称为UnionFS( Union file system  统一文件系统),镜像可以基于dockerfile构建,dockerfile是一个描述文件,里面包含了若干条密令,每条命令都会对基础文件系统创建新的层次结构。

docker提供了一个很简单的机制来创建镜像或更新现有的镜像。用户甚至可以从其他人那里下载一个已经做好的镜像直接使用。(镜像是只读的,可以理解为静态文件)

        相对于镜像来说容器是动态的,容器在启动的时候创建了一层可写层次作为最上层。

(   docker create <image -id > :为指定的镜像添加一个可读写层,构成一个新的容器;)

 docker仓库:如果使用了git和github就很容易理解docker的仓库概念。docker仓库概念和git类似。

docker仓库是用来包含镜像的位置,docker提供了一个注册服务器(register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像,

docker运作中使用的默认仓库是docker hub公共仓库。

仓库支持的操作类似git,当用户创建了自己的镜像之后就可以使用push命令将它上传到共有或者私有的仓库。这样下次再另外一台机器上使用这个镜像的时候只需要从仓库里面pull下来就可以了。

————————————————

友情链接:

关于docker命令:https://www.runoob.com/docker/docker-rmi-command.html

https://blog.csdn.net/qq_40722827/article/list/2


推荐阅读:
  1. docker中镜像与容器的关系是什么?
  2. Docker架构、镜像和容器

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker镜像和容器 容器安全 docker

上一篇:python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例

下一篇:Vue.js仿Select下拉框效果

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》