Linux 多个项目部署在同一台服务器时,date 命令可以只修改其中某一个项目的时间吗

马可菠菠仔 · 2019年04月09日 · 最后由 马可菠菠仔 回复于 2019年04月12日 · 1996 次阅读

项目的测试修改服务器时间。
比如:在做支出时,4 月份做支出和 8 月份做支出能选择的可支出时间不同,所以在执行测试时需要比较频繁的更改时间,但频繁修改服务器时间给在做其他项目的同事带给困扰。
请问在同一台服务器上的不同 Tomcat 可以是不同的时间吗?目前使用 date 命令来修改系统时间,是修改这台服务器上的时间,会影响部署在这台服务器上的所有项目,大家有遇到同样的问题吗?除了申请新服务器,没有什么别的办法吗?

共收到 10 条回复 时间 点赞

docker 可以解决么?

我去催饭 回复

没有使用 docker 的经验,能介绍下 docker 是如何解决这个问题的么🙏

系统时间是系统层面的属性,docker 容器就是一个小系统,你把你的项目部署到不同的 docker 容器中就想当于系统隔离了,那样你可以随便改其中一个项目所在容器的时间而不影响其他的项目所在容器的时间

ThreeClick 回复

谢谢指教!

会影响其他部署的,只能用虚拟环境。

陈子昂 回复

您讲的虚拟环境是指 docker 么

可以单独设置每个 docker 的时间的

不改系统: docker 可以试试
改系统: 获取当前日期的方法封装下做个开关,测试环境打开,此时支持从接口直接设定当前日期

陈恒捷 回复

没想过从源码上解决这个问题,茅塞顿开!

查了 docker 环境的搭建,看到一篇介绍 docker 的博文,博文里通过和虚拟机对比来讲 docker,docker 的几个概念一下子就明白了,贴给大家。

Docker 的几个重要概念
2.1 镜像
Docker 的镜像类似于虚拟机的快照,但是更加的轻量级。如果想要创建镜像的话,一版的套路是根据一个已有的镜像对其进行修改并创建子镜像

2.2 容器
容易依附于镜像,也就是说可以从镜像中创建容器,相当于从快照中创建了一个虚拟机,不过更轻量级,应用都是在容器上跑的。

举个栗子,我下载了一个 Ubuntu 的镜像,通过安装 Scrapy、Django 等应用或者依赖项来对这个镜像进行了修改。然后从这个镜像中创建了 3 个容器,当容器跑起来了之前再跑我们的应用。并且这些容器之间是相互隔离的。

镜像和容器都有一个 GUID 和一个唯一的名字

不过容器和虚拟机有两个比较大的区别,一个是容器只能单进程,不能多进程。还有一个是当你关掉一个虚拟机后可能也就会丢失一些临时文件,但是关闭一个容器之后,容器对镜像所做的所有修改都会丢失。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册