码头工人中容器与镜像的区别是什么

  介绍

本篇文章为大家展示了码头工人中容器与镜像的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

什么是镜像?

镜像可以看成是由多个镜像层叠加起来的一个文件系统(通过UnionFS与改文件联合系统实现),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。

什么是容器?

容器(容器)的定义和镜像(图片)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。要点:容器=镜像+读写层,并且容器的定义并没有提及是否要运行容器。

今天抛开原理,抛开底层。通俗的讲解码头工人中容器与镜像的区别。

对于初学者来说,刚刚接触码头工人会有点迷,特别是镜像与容器。其实我们可以理解镜像与容器为一对多的关系。

下图错误的示范,为什么是错误的呢?因为可以通过一个镜像确实可以启动三个容器,但是这个三个容器的名字不能一样

码头工人中容器与镜像的区别是什么

正确的示例(有人说这和上图有什么区别,上图中是不是名字一样了容器=容器=容器,这里的名字是容器一个!=容器b !=容器c)

码头工人中容器与镜像的区别是什么

所以我们能通过一个镜像,运行出三个容器,镜像是别人打包好在镜像仓库的,我们去下载就好了。但是我们下载镜像的时候要带上版本号。就像我们下载一个jdk,官网默认是最新版,如果我们要下载旧版,就要进到对应的版本里面。

一个镜像怎么运行为容器呢?比如msql,我们下载一个mysql镜像。

docker  pull  mysql

运行镜像,生成mysql_zhangsan数据库(专门给张三用的数据库)

[root@localhost  ~] #, docker  run 列车p  3306:3306 因特网name  mysql_zhangsan 列车e  MYSQL_ROOT_PASSWORD=123456,必经d , mysql    ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434

- p 3306:3306:端口映射

——名字mysql_zhangsan:给这个容器命名为mysql_zhangsan(这个名字是唯一的,不能重复)

- e MYSQL_ROOT_PASSWORD=123456:这个数据库登陆的账号为根密码为123456

- d是基于我们刚刚拉下拉的镜像mysql进行创建的。

运行镜像,生成mysql_lisi数据库(专门给李四用的数据库)

[root@localhost  ~] #, docker  run 列车p  3307:3307 因特网name  mysql_lisi 列车e  MYSQL_ROOT_PASSWORD=123456,必经d , mysql    ms10e4bcfdsf0f61cbad43898de71d366117d120dfs9db651844c0e73863b9968

- p 3307:3307:端口映射(不能用3306了,因为3306年被张三的数据库占用了)

——名字mysql_lisi:给这个容器命名为mysql_lisi(这个名字是唯一的,不能和上面的mysql_zhangsan重复)

- e MYSQL_ROOT_PASSWORD=123456:这个数据库登陆的账号也为根密码也为123456年

- d是基于我们刚刚拉下拉的镜像mysql进行创建的。

到这里,我们成功通过一个镜像,创建了两个不同的容器。这样,我们的电脑上就能运行两个mysql了。如果我们要再开一个mysql容器,只要端口不同,名称不同,最后还是基于我们拉的mysql镜像就可以进行创建了。

上述内容就是码头工人中容器与镜像的区别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

码头工人中容器与镜像的区别是什么