当前位置: 首页 > article >正文

什么是Docker

容器技术和虚拟机

虚拟机

和一个单纯的应用程序相比,操作系统是一个很重的程序,刚装好的系统还什么都没有部署,单纯的操作系统其磁盘占用至少几十G起步,内存要几个G起步。

在这台机器上开启三个虚拟机,每个虚拟机上部署一个应用,其中VM1占用2G内存,VM2占用1G内存,VM3占用了4G内存。可以看到虚拟本身就占据了总共7G内存,因此没有办法划分出更多虚拟机从而部署更多的应用程序,可是我们部署的是应用程序,要用的也是应用程序而不是操作系统。

还有一个问题,操作系统比较重,启动时间相比比较缓慢。

容器技术

与虚拟机通过操作系统实现隔离不同,容器技术只隔离应用程序的运行时环境但容器之间可以共享同一个操作系统,这里的运行时环境指的是程序运行依赖的各种库以及配置。

 容器技术的目的:

  • 应用之间相互隔离
  • 构建一次,导出运行
  • 轻量级,占用资源少,快速部署

什么是docker

docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样程序可以在任何环境都会有一致的表现。

使用docker

docker中有这样几个概念:

  • dockerfile

  • image

  • container

构建docker image需要编写dockerfile,可以简单的把image理解为可执行程序,container就是运行起来的进程。

只需要在dockerfile中指定需要哪些程序、依赖什么样的配置,之后把dockerfile交给“编译器”docker进行“编译”,也就是docker build命令,生成的可执行程序就是image,之后就可以运行这个image了,这就是docker run命令,image运行起来后就是docker container。

docker的工作流程

docker build

当写完dockerfile交给docker“编译”时使用这个命令,那么client在接收到请求后转发给docker daemon,接着docker daemon根据dockerfile创建出“可执行程序”image。

docker run

有了“可执行程序”image后就可以运行程序了,接下来使用命令docker run,docker daemon接收到该命令后找到具体的image,然后加载到内存开始执行,image执行起来就是所谓的container。

 

 docker pull

docker registry 可以用来存放各种image,可以使用docker pull命令从公共仓库docker Hub下载docker image

 

 


http://www.kler.cn/a/37199.html

相关文章:

  • 华为路由器如何通过Console口进行基本配置
  • openEuler 22.03 LTS登录AWS Marketplace
  • python基础系列一
  • Go 并发模型—Goroutines
  • vscode maven开发
  • 代码随想录算法训练营第16天 104.二叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
  • 【Linux】Linux工具
  • element 表格套输入框
  • 云原生周刊:Dapr 完成模糊测试审计 | 2023.7.10
  • missing-semester————2
  • CSS详解
  • Zookeeper集群下载安装并启动
  • 数学建模-拟合算法
  • java异步线程之间数据传递
  • JavaScript 深度剖析-函数式编程(一)
  • 基于 OpenCV 的图像处理与分析应用的设计与实现
  • 【牛客面试真题】字符串操作
  • 基于单片机心率脉搏心率血压体温血氧检测系统的设计与实现
  • Shell第一章——Shell编程规范与变量
  • SpringBoot前后端分离项目,打包、部署到服务器详细图文流程