Docker 到底是什么?

举报
似曾相识 发表于 2022/01/14 23:18:44 2022/01/14
【摘要】 在Linux上进行圈地运动,将每一个软件圈起来独立运行,你不犯我,我不犯你,老死不相往来,系统开销小,启动时间短。

讲Docker之前,先说一下虚拟机

一说起虚拟机,很多人脑海里想的都是VMware和VirtualBox。很多人只是知道虚拟机与VMware、VirtualBox有关,具体是什么关系,虚拟机就是VMware或VirtualBox这样的软件吗?可能很多人对这个概念还很模糊。

什么是虚拟机,百度百科中是这样描述的:

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

什么是VMware:

VMware是一款功能强大的桌面虚拟计算机软件。

由上面两条定义可知,虚拟机是一个完整的计算机系统,而VMware则是一款软件。虚拟机是通过软件模拟的一个计算机系统,这个软件就是VMware。


言归正传,讲一下Docker与虚拟机的区别(应该说Docker与VMware的区别)

不过还是先看一下虚拟机与Docker的由来

例如,在Windows平台下安装某个版本的eclipse,需要安装jdk1.7-64

                                            安装STM32Cube,需要安装jdk1.8-64

                                            安装某一款软件时,又需要安装jdk1.7-32

这样就会导致安装配置好一款软件后,之前的软件又发现不能用了。很是烦人,这就是多款软件使用同一个操作系统环境带来的问题。在Linux下也会出现类似的问题,环境变量的冲突、依赖的冲突等。

好,出来了一种机制:虚拟机

       你可以在一台主机上虚拟出来N台虚拟机,比如利用VMware或VirtualBox

       但是有一个弊端,总不能有一个项目,或者有一个软件我就开一台虚拟机吧,开多了主机也是吃不消的

好,更NB的来了:Docker

      在Linux上进行圈地运动,将每一个软件圈起来独立运行,你不犯我,我不犯你,老死不相往来

      系统开销小,启动时间短


说了这么多,还是没讲Docker是什么,别急,来了

我用类比的思想讲一下什么是Docker

如下图:Docker好比VMware,Docker下的镜像好比VMware下的系统镜像,Docker将mysql镜像启动成一个容器好比VMware将ubuntu16.4镜像启动成一台虚拟机

4.png


Docker 镜像(Images):

一个只读模板,可以用来创建容器;可以理解为Java中的类

Docker 容器(Container):

容器就是镜像运行的实例,也就是镜像启动后的一个实例称为称为容器,是独立运行的一个或一 组应用;

Docker利用容器来运行应用,容器可以被启动、停止、删除,每个容器都是互相隔离的、保证安全的平台;

可以把容器看作是一个简易版的linux(包括权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序;

可以理解为Java中通过类创建的实例

Docker 仓库(Resoisitory)

仓库是集中存放镜像文件的场所,类似git的代码仓库


镜像操作:

docker pull mysql 下载mysql镜像,是不是和git类似

docker images 查看已下载的镜像列表

容器操作:

docker run -d -p 13306:3306 --name mysql -v /opt/mydata/:/var/lib/mysql -e  mysql:latest 根据镜像创建并启动容器

docker start mysql 启动已有的容器

docker ps 查看正在运行的容器

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。