docker镜像与传统vm虚拟机区别及分析

 更新时间:2022年03月01日 09:49:15   作者:kl  
这篇文章主要是内容分享系列,为大家用大白话通俗的讲解docker镜像与传统vm虚拟机区别以及分析,有需要的朋友可以借鉴参考想,希望能够有所帮助

前言碎语

这篇博文是博主在公司内推进docker+k8s落地时的部分内容。目的是为了让公司内的开发不管有没有接触过docker这个技术,都能准确的了解docker是什么,怎么打出符合自己项目需要docker镜像,最终交付给容器环境运行。

前言:非常重要

今天分享的内容主要以实际改造为主,剖开docker的神秘面纱,力求让大家都知道docker是什么,怎么打dcoker镜像,docker这块是开发必须要了解的,以后我们的交付物不是jar,也不是war,而是可以运行在各种容器化平台(k8s,swarm,mesos,OpenShift等)的docker镜像。

k8s这块已经偏运维了,运维需要掌握k8s中的诸多概念,以后运维就不是运维ECS主机了,直接运维k8s。然后分别以spring boot和tomcat两个类型的不同应用为例。讲下具体的改造方案,以及我们在这个期间解决的一些问题和改造需要注意的细节

大白话docker

docker和传统vm的区别

虚拟机属于完全虚拟化,即模拟完整的底层硬件环境特权指令的执行,客户操作系统无需进行修改。比如我们常用的VirtualBox,VMWare Workstation和Parallels Desktop等虚拟化软件。

Docker和其它容器技术便是操作系统级虚拟化,即直接通过内核创建虚拟的操作系统实例(内核和库),来隔离不同的进程和资源。

大白话:什么是镜像(image)?

在docker没有出现流行前,一般提到镜像,都是Windows等系统镜像,其实docker镜像和Windows等系统镜像在概念上是一样的,都是将一个完整的可运行的系统打包下,方便下次运行时包含所有环境,不需要安装各种依赖了。

java的docker镜像中一般都有一个最基础的镜像+jre环境,最基础的系统运行环境,大概4M左右。然后我们需要将我们的spring boot应用copy进去,重新打包镜像。那么新的镜像就是包含了我们的应用的所有的依赖了。

这个过程相当于,将我们uat环境的ECS主机copy一份镜像一样,但是这个体积有很大的区别。最终我们打完的docker镜像大小=基础系统(4M左右)+java(80M左右)+应用(100M左右)
spring boot应用docker镜像脚本Dockerfile示例

FROM registry-vpc.cn-shanghai.aliyuncs.com/keking/jdk:1.8
ENV LANG C.UTF-8
COPY producer/target/salesApp-1.0-RELEASES.jar app.jar
CMD $runShell

以上就是docker镜像与传统vm区别及分析的详细内容,更多关于docker镜像与vm区别的资料请关注脚本之家其它相关文章!

相关文章

  • Docker中搭建FastDFS文件系统(多图教程)

    Docker中搭建FastDFS文件系统(多图教程)

    这篇文章主要介绍了Docker中搭建FastDFS文件系统(多图教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 利用Docker搭建本地https环境的完整步骤

    利用Docker搭建本地https环境的完整步骤

    这篇文章主要给大家介绍了关于如何利用Docker搭建本地https环境的完整步骤,文中通过示例代码将实现的步骤介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2018-04-04
  • Docker容器内不能联网的6种解决方案

    Docker容器内不能联网的6种解决方案

    今天小编就为大家分享一篇关于Docker容器内不能联网的6种解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Spring Boot 分层打包 Docker 镜像实践及分析(推荐)

    Spring Boot 分层打包 Docker 镜像实践及分析(推荐)

    这篇文章主要介绍了Spring Boot 分层打包 Docker 镜像实践及分析,本文通过图文并茂的形式实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • docker容器运行成功但无法访问的原因分析及解决方案(以Tomcat为例亲测有效)

    docker容器运行成功但无法访问的原因分析及解决方案(以Tomcat为例亲测有效)

    这篇文章主要介绍了docker容器运行成功但无法访问的原因分析及对应解决方案(以Tomcat为例亲测有效),文中通过图文结合的方式介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-03-03
  • docker build与Dockerfile问题

    docker build与Dockerfile问题

    这篇文章主要介绍了docker build与Dockerfile问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 如何查看docker容器运行进程信息

    如何查看docker容器运行进程信息

    这篇文章主要介绍了如何查看docker容器运行进程信息问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 深入理解docker的四种网络方式

    深入理解docker的四种网络方式

    本篇文章主要介绍了深入理解docker的四种网络方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • docker离线安装并导入镜像过程

    docker离线安装并导入镜像过程

    这篇文章主要介绍了docker离线安装并导入镜像过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Docker多容器连接(以Tomcat+Mysql为例)

    Docker多容器连接(以Tomcat+Mysql为例)

    这篇文章主要介绍了Docker多容器连接(以Tomcat+Mysql为例),Docker提供了多个容器直接访问的方法,可以使多个容器直接通过网络端口进行访问
    2017-03-03

最新评论