栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Docker解决部署难题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker解决部署难题

文章目录
    • 部署存在的问题
    • docker如何解决
    • docker VS 虚拟机
    • 参考

部署存在的问题

1、环境依赖

一个程序的运行,需要依赖文件系统、网络、动态库、各种运行时(例如Java虚拟机)等等。最简单的例子,一个Java程序要运行,机器上必须装有Java虚拟机。程序要写日志,对应的目录必须是可写的。

因此,程序的部署依赖于环境的配置,配置环境需要消耗不小的工作量。

2、环境冲突

一台机器上,一般要部署多个服务程序。

首先,它们的环境依赖可能存在冲突,比如A服务和B服务只能有一个监听80端口,它们依赖的运行时版本可能不一致,这种情况下,让他们同时运行就是一件麻烦事。

3、相互影响

既然A、B程序在同一个机器,那么A程序运行的时候,有可能影响B,比如A清理日志文件的时候,有可能删除B的日志文件。

在实际开发中,相互影响的情况很常见,而且很难排查问题。

docker如何解决

1、环境打包

docker可以把依赖的环境进行打包,变成标准件,直接部署到任意服务器上,服务器无需做任何配置。

2、进程隔离

利用Linux的name space技术,对容器的内存、进程、文件、网络、IPC、CPU等进行了隔离,即在容器内,感觉像是进入了一个独立的操作系统。

docker VS 虚拟机

虚拟机是机器资源的虚拟化,但是本身也是完整的系统,拥有独立的操作系统。

docker是进程级别的,只是对进程进行隔离,它是非常轻量的,这就是docker的优势所在。

操作系统OS和docker image的区别:

  • OS = kernel + filesystem/libraries 操作系统由内核、文件系统、各种库组成。
  • Image = filesystem/libraries 镜像由文件系统和各种库组成。
参考
  • DOCKER基础技术:LINUX NAMESPACE(上)
  • DOCKER基础技术:LINUX NAMESPACE(下)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583932.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号