面试官留步!听我跟你聊聊Docker原理
发布时间:2021-06-06 10:45:00 所属栏目:云计算 来源:互联网
导读:开发人员开发完一个电商项目,该 Jar 项目包含 Redis、MySQL、ES、Haddop等若干组件。开发人员自测无误后提交给测试进行预生产测试了。 测试:你的这个服务,我在进行单元测试跟数据核对的时候总是出现不知名的bug!你要不要来看下啊? 开发:你咋测试的?是按
开发人员开发完一个电商项目,该 Jar 项目包含 Redis、MySQL、ES、Haddop等若干组件。开发人员自测无误后提交给测试进行预生产测试了。
测试:你的这个服务,我在进行单元测试跟数据核对的时候总是出现不知名的bug!你要不要来看下啊?
开发:你咋测试的?是按照操作文档一步步来的么?
测试:绝对是按照文档来的啊!
开发:你重启了吗?清缓存了吗?代码是最新版吗?你用的是Chrome浏览器? 你是不是动啥东西了?
测试:这.. 这.. 这.. 我啥也没干啊!
至此,开发跟测试之间的爱恨情仇正式开始!
1 Docker 简介
1.1 Docker 由来
Docker 是基于 Go 语言开发的一个容器引擎,Docker是应用程序与系统之间的隔离层。通常应用程序对安装的系统环境会有各种严格要求,当服务器很多时部署时系统环境的配置工作是非常繁琐的。Docker让应用程序不必再关心主机环境,各个应用安装在Docker镜像里,Docker引擎负责运行包裹了应用程序的docker镜像。
Docker的理念是让开发人员可以简单地把应用程序及依赖装载到容器中,然后轻松地部署到任何地方,Docker具有如下特性。
Docker容器是轻量级的虚拟技术,占用更少系统资源。
使用 Docker容器,不同团队(如开发、测试,运维)之间更容易合作。
可以在任何地方部署 Docker 容器,比如在任何物理和虚拟机上,甚至在云上。
由于Docker容器非常轻量级,因此可扩展性很强。
1.2 Docker 基本组成
镜像(image):
Docker 镜像就好比是一个目标,可以通过这个目标来创建容器服务,可以简单的理解为编程语言中的类。
容器(container):
Docker 利用容器技术,独立运行一个或者一组应用,容器是通过镜像来创建的,在容器中可执行启动、停止、删除等基本命令,最终服务运行或者项目运行就是在容器中的,可理解为是类的实例。
仓库(repository):
仓库就是存放镜像的地方!仓库分为公有仓库和私有仓库,类似Git。一般我们用的时候都是用国内docker镜像来加速。
1.3 VM 跟 Docker
虚拟机:
传统的虚拟机需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给他的资源将全部被占用。每一个虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。
Docker:
容器技术是和我们的宿主机共享硬件资源及操作系统可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。
![]() (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |