我们在docker容器中直接通过命令行修改时间会有下面这个报错:

date: can't set date: Operation not permitted

这是由于docker容器是基于Linux的Capability机制来进行隔离。
而修改系统时间是需要有SYS_TIME权限才可以修改,docker容器默认是没有这个权限的。所以我们可以在启动容器的时候,加一个参数

--cap-add SYS_TIME

比如

docker run -it --cap-add SYS_TIME --name docker1101 apline /bin/sh

然后我们再去容器中执行修改时间的命令:

date -s "2021-3-10 11:42:45"  docker exec -i docker1101 /bin/sh -c 'date -s "2021-3-10 11:42:45"'

可以看到容器的时间已经改变

不过通过这种方式修改容器的时间,事实上同时把宿主机的时间也会修改了。
如果这个宿主机上同时运行了其他的容器,那么这些容器的时间也会产生变化。


另外还有一种方式,可以用libfaketime

libfaketime是一个库,用于修改docker容器时间而不影响宿主机的。它能够“覆盖”应用程序用来检索当前日期或时间的系统调用,并给这些调用提供伪造的值。它发布于github

安装记录如下:
我这里的docker用得是apline,先切换apline安装源

sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

下载libfaketime

wget https://github.com/wolfcw/libfaketime/archive/master.zip

安装

sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
apk add make gcc g++
wget http://192.168.0.203/master.zip
unzip master.zip
cd libfaketime-master
make && make install
cd ..
rm -rf libfaketime-master master.zip

验证

export LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1 FAKETIME="2019-08-12 10:30:22"

docker容器中修改时间相关推荐

  1. 在一个已经EXIT的docker容器中,修改配置文件

    文章目录 背景 一.方法一 二.方法二 1.通过运行docker inspect [容器id]来获取到底层的容器对象信息 2.修改配置文件 总结 背景 当我们在修改容器里的配置文件后(例如mysql) ...

  2. 进入Docker容器中修改mysql密码

    docker pull mysql docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql ...

  3. Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间

    一般情况下,我们仅仅需要修改容器的时间与我们宿主机的实际实际一致即可, 我们知道,默认情况下docker容器是不允许访问系统时钟,但是有一款开源的软件使这样的需求变成了可能.此lib拦截用于检索当前时 ...

  4. docker容器中配置文件修改错误,导致容器无法启动

    docker容器中配置文件修改错误,导致容器无法启动 问题 在elasticsearch加入中文分词器ik时,在容器中配置修改错误,导致elasticsearch启动不了 解决方案 [root@blu ...

  5. 【Docker】(五)使用bind mounts修改Docker容器中的Nginx配置文件

    1.前言 本系列文章记录了从0开始学习Docker的过程,Docker系列历史文章: (一)基本概念与安装使用 (二)如何使用Docker发布一个SpringBoot服务 (三)使用registry远 ...

  6. 修改docker容器中的文件方法

    修改docker容器配置文件方法 昨天准备修改docker容器中的配置文件,由于是xml配置文件,不需要编译,想着直接编辑一下就ok了,但是进入容器发现竟然没有vi命令,一番查找,可以使用以下方法 1 ...

  7. 修改docker容器中的配置文件

    容器创建好后有时需要进入容器修改配置,发现没有vim,我们可以使用sed命令来修改配置文件 sed  -i  '3s/yes/no/' a.conf      将a.conf中第3行中的yes修改为n ...

  8. docker中java钩子_springboot项目在docker容器中如何优雅关闭

    前言 什么是优雅关闭 在我看来所谓的优雅关闭,就是在系统关闭时,预留一些时间,让你有机会来善后一些事情 什么时候需要优雅关闭 是否所有项目都需要优雅关闭?那也不一定,毕竟所谓的优雅关闭,另一面就意味这 ...

  9. 在Docker容器中正确配置Gunicorn

    Gunicorn是用于Python应用程序的通用WSGI服务器,但是大多数在Docker容器中使用的gunicorn配置都是错误的.在容器中运行gunicorn与在虚拟机或物理服务器上运行不同,并且还 ...

最新文章

  1. linux下压缩并分割稀疏文件
  2. Swift--控制流与oc不同的地方
  3. 基于 AVPlayer 自定义播放器
  4. 江西版七年级计算机教案,江西科技版《信息技术》七年级信息技术下册教案.doc...
  5. Python字符串等于
  6. 找简历模板过程中的碎碎念
  7. IGBT简介、结构及原理
  8. 小麦助教|教你培训机构如提高学员续费率!
  9. No discret job created in Oracle
  10. 使用backdrop-filter部分场景的替代效果
  11. 【java】Java中关于String类型的详解
  12. Linux命令--chroot
  13. 小米10S MIUI13.0.3线刷12.5.14
  14. 【ffmpeg】音频重采样
  15. ui设计-文案(CW)
  16. 蓝桥杯—拉马车—思路透彻
  17. 麻省电气工程与计算机科学专业,美国留学 麻省理工学院电气工程与计算机科学理科专业介绍...
  18. python数据分析与应用课后实训_python数据分析与应用
  19. font-awesome图标显示问题解决方案
  20. 日语学习 第4篇 部屋(へや)に机(つくえ)と椅子(いす)があります

热门文章

  1. 桌面文件夹计算机操作被限制,本机受限制,不能打开属性
  2. 3GPP 5G R17标准冻结,RedCap作为重要特性值得关注!
  3. 基于图的异常检测算法——概述
  4. 实体间的联系存在着( )_【活动】迎新年送实体黑球+实况足球手游国服曼联精选抽黑视频!...
  5. 机器学习 python 交叉验证实例
  6. linux远程连接设置
  7. Caused by:javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or ciph
  8. webmin虚拟服务器创建,如何在服务器上安装配置Webmin
  9. oracle index skip scan,索引跳跃式扫描(INDEX SKIP SCAN)
  10. 弘辽科技:淘宝上架产品不简单,如何避免踩坑?