聊聊docker中容器与镜像的区别

 更新时间:2021年06月08日 16:11:53   作者:天下没有收费的bug  
今天什么内容不讲只给大家讲解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安装MongoDB的过程(mongo.latest)

    Docker安装MongoDB的过程(mongo.latest)

    MongoDB是一种高性能、灵活的数据库,特别适合处理大量非结构化数据,它采用文档数据模型,支持复杂的数据结构,提供类似面向对象的查询语言,本文给大家介绍Docker安装MongoDB的过程(mongo.latest),感兴趣的朋友一起看看吧
    2024-11-11
  • Docker容器化spring boot应用详解

    Docker容器化spring boot应用详解

    本篇文章主要介绍了Docker容器化spring boot应用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 使用DockerFile构建镜像与镜像上传的实现步骤

    使用DockerFile构建镜像与镜像上传的实现步骤

    本文主要介绍了使用DockerFile构建镜像与镜像上传的实现步骤,使用Dockerfile好处是自动化构建,确保环境的一致性和可重复性,跟踪构建过程的演化等,文中通过图文讲解的非常详细,需要的朋友可以参考下
    2024-02-02
  • Docker容器镜像相关命令基本介绍与使用

    Docker容器镜像相关命令基本介绍与使用

    这篇文章主要为大家介绍了Docker容器镜像相关命令的基本介绍与使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • Ubuntu 16.04安装使用Docker教程

    Ubuntu 16.04安装使用Docker教程

    本篇文章主要介绍了Ubuntu 16.04安装使用Docker教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • docker更换容器存储位置的操作指南

    docker更换容器存储位置的操作指南

    今天之前在某个服务器上使用docker搭建的服务突然无法访问了,进入服务器查看发现服务运行正常,但是就是无法使用,这时候查看存储使用情况发现docker的存储目录下内存已满,所以本文给大家介绍了docker更换容器存储位置的操作指南,需要的朋友可以参考下
    2024-12-12
  • 使用Dockerfile.dockerignore提升Docker镜像构建速度

    使用Dockerfile.dockerignore提升Docker镜像构建速度

    这篇文章主要为大家介绍了使用Dockerfile.dockerignore提升Docker镜像构建速度,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2023-10-10
  • Docker容器搭建运行python的深度学习环境的方法

    Docker容器搭建运行python的深度学习环境的方法

    本文主要介绍了Docker容器搭建运行python的深度学习环境的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • windows使用docker部署gitlab方式

    windows使用docker部署gitlab方式

    这篇文章主要介绍了windows使用docker部署gitlab方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 基于Docker+Jenkins实现自动化部署的方法

    基于Docker+Jenkins实现自动化部署的方法

    这篇文章主要介绍了基于Docker+Jenkins实现自动化部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论