docker和容器有什么区别(聊聊docker中容器与镜像的区别)
docker和容器有什么区别
聊聊docker中容器与镜像的区别什么是镜像?镜像可以看成是由多个镜像层叠加起来的一个文件系统(通过UnionFS与AUFS文件联合系统实现),镜像层也可以简单理解为一个基本的镜像,而每个镜像层之间通过指针的形式进行叠加。
什么是容器?容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。要点:容器 = 镜像 + 读写层,并且容器的定义并没有提及是否要运行容器。
今天抛开原理,抛开底层。通俗的讲解docker中容器与镜像的区别。
对于初学者来说,刚刚接触docker会有点迷,特别是镜像与容器。其实我们可以理解镜像与容器为一对多的关系。
下图错误的示范,为什么是错误的呢?因为可以通过一个镜像确实可以启动三个容器,但是这个三个容器的名字不能一样
正确的示例(有人说这和上图有什么区别,上图中是不是名字一样了 容器=容器=容器 ,这里的名字是 容器a != 容器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 : 端口映射
--name mysql_zhangsan : 给这个容器命名为mysql_zhangsan(这个名字是唯一的,不能重复)
-e MYSQL_ROOT_PASSWORD=123456 : 这个数据库登陆的账号为ROOT 密码为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被张三的数据库占用了)
--name mysql_lisi : 给这个容器命名为mysql_lisi(这个名字是唯一的,不能和上面的mysql_zhangsan重复)
-e MYSQL_ROOT_PASSWORD=123456 : 这个数据库登陆的账号也为ROOT 密码也为123456
-d 是基于我们刚刚拉下拉的镜像mysql进行创建的。
到这里,我们成功通过一个镜像,创建了两个不同的容器。这样,我们的电脑上就能运行两个mysql了。如果我们要再开一个mysql容器,只要端口不同,名称不同,最后还是基于我们拉的mysql镜像就可以进行创建了。
以上就是聊聊docker中容器与镜像的区别的详细内容,更多关于docker容器与镜像的区别的资料请关注开心学习网其它相关文章!
- 群晖docker搭建代理服务(群晖NAS利用Docker容器搭建KMS激活服务器实现激活windows系统和office操作步骤)
- docker离线安装步骤(Windows下Docker安装各种软件的详细过程)
- 如何启动所有docker服务(docker 使用CMD或者ENTRYPOINT命令同时启动多个服务)
- harbor镜像仓库扫描原理(Harbor搭建Docker私有仓库的实现方法)
- docker映射端口(Docker初级网络端口映射的配置)
- docker垃圾清理(docker磁盘空间清理的解决办法)
- docker gitlab 配置(使用Docker构建一个Git镜像使用clone仓库)
- nginxdocker界面(Docker部署nginx实现过程图文详解)
- docker 限制cpu使用率(docker CPU限制的实现)
- 关于docker安全之Docker-TLS加密通讯问题(关于docker安全之Docker-TLS加密通讯问题)
- springcloud部署docker(Spring Cloud中使用jib进行docker部署的步骤详解)
- docker安装mysql后无法连接(Docker 安装 MySQL 并实现远程连接教程)
- docker 部署netcore(关于Jenkins + Docker + ASP.NET Core自动化部署的问题避免踩坑)
- docker多个端口怎么区分(解决docker run时候启动两个占有不同端口的问题)
- 2022-01-26 01:41:54
- docker如何改tomcat(docker安装Tomcat 404问题的解决方案)
- 得这个 难治病 的人太多了,300个人赶到杭州商量怎么办(得这个难治病的人太多了)
- 经度,世界时间腕表的灵魂(世界时间腕表的灵魂)
- 阿里最新财报公布 三季度营收增长3 ,将增加150亿美元回购额度 在美股价小涨(阿里最新财报公布)
- 赵薇时胖时瘦 最近变美少女 原因在这里 躺着就变瘦(赵薇时胖时瘦最近变美)
- 学会这26种姿势,你就可以和兵哥哥切磋了(你就可以和兵哥哥切磋了)
- 吴彦祖陈冠希 恩怨 ,失去曾让他流泪的女友,终遇走过18年真爱(吴彦祖陈冠希恩怨)
热门推荐
- iiS7中如何部署MVC3程序
- mysql和explain哪个好(MySQL EXPLAIN输出列的详细解释)
- ASP.NET实现多文件上传
- apache服务器设置301(Apache Rewrite实现URL的301跳转和域名跳转)
- docker进入redis容器(Docker配置redis哨兵模式的方法多服务器上)
- 用idea设置tomcat(Idea中tomcat启动源码调试进入到tomcat内部进行调试的方法)
- mysql8.0.23的安装步骤(mysql 8.0.22 下载安装配置方法图文教程)
- vue文件上传进度处理(Vue 大文件上传和断点续传的实现)
- python 获取数组任意组合(Python实现求两个数组交集的方法示例)
- docker 查看目录映射(docker 文件存放路径, 修改端口映射操作方式)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9