Docker解决部署难题

部署存在的问题

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 镜像由文件系统和各种库组成。

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值