docker容器内修改容器时间

因为开发需要,需要临时修改容器内时间测试,且不影响宿主机的原始时间。调研了下相关方法,现做记录如下.

LIBFAKETIME
​ libfaketime 可以安装在linux和macOS系统。它使用操作系统的预加载library机制,因此对于静态链接或setuid程序是不适用的。libfaketime在系统中使用信号量和共享内存,以便在父子进程中同步faketime设置。

​ github地址

​ https://github.com/wolfcw/libfaketime

​ 安装

​ git clone https://github.com/wolfcw/libfaketime​ cd libfaketime​ make make install

可以直接安装也可以打包到容器内,为了方便,我直接打包到基础镜像容器内

基于之前的基础镜像做修改

基于tini的openjdk8镜像_tini java-CSDN博客

FROM openjdk:8-jdk-alpine
#jdk采用openjdk8,操作系统采用alpine,减小体积
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
#修改镜像源为阿里源
ENV LANG=en_US.UTF-8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
#修改时区及默认字符集# 安装容器内更改时间的软件libfaketime
RUN apk add build-base git
RUN git clone https://github.com/wolfcw/libfaketime /usr/local/src/libfaketime
WORKDIR /usr/local/src/libfaketime
RUN make && make installRUN apk add --update --no-cache ttf-dejavu fontconfig busybox-extras iproute2 curl net-tools tcpdump wget&& \apk --update --no-cache add tini && \rm -rf /var/cache/apk/*
#添加常用工具及字符集字体等
#采用tini运行java,提高运行可靠性,防止僵尸进程,并且方便适应jdk自带命令
#***.jar 替换为需要运行的jar
ENTRYPOINT tini java $JAVA_OPTS -jar /***.jar

打包完基础镜像后,启动时需要指定环境变量

-e LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1
-e FAKETIME="2000-01-01 10:30:00"

注:FAKETIME="2000-01-01 10:30:00" 该变量设置后时间会一直保持不变,而 FAKETIME="@2000-01-01 10:30:00" 变量设置后时间会从这个时间往后递增。

例如

docker run --name test01 -e LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1 -e FAKETIME="2000-01-01 10:30:00" -d node-socket-faketime:12.14 bash -c  "while true;do sleep 2;done"

测试成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512082.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linemap | 这样好看的山峦地图真的可以快速绘制啦~~

上一次介绍了Python绘制svg的优秀可视化库Pygal,今天我们介绍一下一个优秀的R地图可视化绘制包-linemap包,顾名思义,该包是是为了绘制由线组成的地图,其官网如下:https://github.com/rCarto/linemap。该包主要拥有两个…

在CentOS7系统中安装Tomcat

下载 下载地址:Apache Tomcat - Welcome! 使用工具上传 使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux 在FinalShell文件栏点击上传按钮 将下载好的 apache-tomcat-9.0.86.tar.gz 上传至根目录 查看上传结果 # 跳转到root cd ~ # 查看目录内容…

【Java设计模式】六、代理模式:静态代理、JDK + CGLIB动态代理

文章目录 1、代理对象2、代理模式结构3、静态代理4、JDK动态代理5、JDK动态代理的原理6、CGLIB动态代理7、三种代理的对比8、代理模式的总结 结构型设计是将类或者对象按某种布局(继承机制、组合聚合)来组成更大结构。包括七种: * 代理模式 …

【Python】外网远程登录访问jupyter notebook+pycharm使用ipython

第一步:创建python虚拟环境 conda create -n py3610 python3.6.10第二步:安装ipython pip install ipython pip install ipython notebook第三步:创建 IPython Notebook 服务器配置文件 # 进入python交互shell,设置密码 >&…

信钰证券|沪指震荡涨0.26%,传媒等板块拉升,消费电子概念活跃

5日早盘,沪指盘中窄幅震荡上扬,创业板指、科创50指数走高,北证50指数跌超2%;北向资金小幅流入。 截至午间收盘,沪指涨0.26%报3047.2点,深成指微涨0.05%,创业板指涨0.42%,科创50指数…

GEE 数据集 ——利用leafmap python软件包实现NASA数据的接入(colab示例)

我们如何获取我们想要的数据,这里我们通过 leafmap python软件包实现NASA数据种全球超过9000+的数据集产品的接入和使用。这里我们使用在线的colab来实现处理,因为这里我们可以很好的应用已经在线配置好的colab环境来实现,省去了安装过程的繁琐。 要下载和访问数据,您需要…

AI预测福彩3D第一弹【2024年3月4日预测】

众所周知,深度学习算法(AI算法)由于其内部含有庞大数量的神经元,理论上能够拟合任意维度的数据,目前在大数据分析领域应用非常广泛,并且能够很好的挖掘数据规律,对相关数据进行预测分析。 前面一…

Unity 角色控制(初版)

角色控制器组件,当然是将组件放在角色上了。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c1 : MonoBehaviour {// 获取角色控制器private CharacterController player;void Start(){// 加载角色控制器player …

【Python】进阶学习:pandas--info()用法详解

【Python】进阶学习:pandas–info()用法详解 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订…

蒙提霍尔问题

文章目录 1.简介2.答案3.直觉的错误参考文献 1.简介 蒙提霍尔问题(Monty Hall problem)是美国电视游戏节目《Let’s Make a Deal》中的一个问题,并以主持人 Monty Hall 命名。 蒙提霍尔问题也叫「三门问题」或「山羊汽车问题」。 假设您正…

超简单❗十步创建知识管理系统,效率开挂

真的想在一个行业深耕,建立一个知识管理系统是一件很棒的事。不光自己找起来思路清晰,给员工培训也是很方便的,很多刚入门的同事,在公司有详细的Sop流程情况下,简单培训就能上岗了。创建一个详细的知识管理系统可以按照…

Softmax 回归 + 损失函数 + 图片分类数据集【动手学深度学习v2】李沐动手学深度学习课程笔记

目录 Softmax回归 损失函数 图片分类数据集 Softmax回归从零开始实现 Softmax回归简洁实现 Softmax回归 回归和分类的区别 回归问题举例上节课的预测房价问题,分类问题就是对样本进行分类 回归和分类的具体区别 假设真实的类别为第i个类别(值为1&#x…