小知识:聊聊docker中容器与镜像的区别

什么是镜像

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

什么是容器

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

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

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

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

%小知识:聊聊docker中容器与镜像的区别-猿站网-插图

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

%小知识:聊聊docker中容器与镜像的区别-1猿站网-插图

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

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

?
1
docker pull mysql

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

?
1
2
[root@localhost ~]# docker run ‐p 3306:3306 ‐‐name mysql_zhangsan ‐e MYSQL_ROOT_PASSWORD=123456 ‐d  mysql
ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434

-p 3306:3306 : 端口映射

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

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

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

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

?
1
2
[root@localhost ~]# docker run ‐p 3307:3307 ‐‐name mysql_lisi ‐e MYSQL_ROOT_PASSWORD=123456 ‐d  mysql
ms10e4bcfdsf0f61cbad43898de71d366117d120dfs9db651844c0e73863b9968

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

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

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

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

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

以上就是聊聊docker中容器与镜像的区别的详细内容,更多关于docker容器与镜像的区别的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/LoveBB/p/14862263.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:服务器错误500 501 502 503 504 505 详解

2023-3-20 17:51:10

建站知识

小知识:Linux系统Docker 部署 ASP.NET Core应用的流程分析

2023-3-20 18:17:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索