docker容器中如何修改时间

 更新时间:2024年05月27日 14:52:04   作者:森林番茄  
这篇文章主要介绍了docker容器中如何修改时间问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

docker容器中修改时间

我们在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容器修改时间报错 date: cannot set date: Operation not permitted

docker容器修改时间 date -s 报错 date: cannot set date: Operation not permitted

原因是在容器内没有权限进行操作,启动容器时授权即可。

docker-compose修改方法

添加 privileged: true

容器修改方法

docker run -itd --privileged=true -p 3306:3306 mysql:5.7.36

接下来就可以使用date -s修改时间了

直接修改时区

添加

     environment:      - TZ=Asia/Shanghai

如下图:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Mac上使用Docker如何快速启动MySQL测试

    Mac上使用Docker如何快速启动MySQL测试

    本文主要讨论如何使用Docker快速启动 MySQL 测试,包括Mac环境。非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • 给debian的docker容器添加crontab定时任务

    给debian的docker容器添加crontab定时任务

    这篇文章主要介绍了给debian的docker容器添加crontab定时任务的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • k8s 与docker空间使用分析与清理方法

    k8s 与docker空间使用分析与清理方法

    使用Docker 运行业务一段时间后,可能会出现宿主节点的磁盘容量占用高,导致宿主机磁盘空间不足等异常,对业务造成影响,本文对 Docker 的空间占用进行汇总分析,需要的朋友可以参考下
    2022-12-12
  • docker搭建Hadoop CDH高可用集群实现

    docker搭建Hadoop CDH高可用集群实现

    本文主要介绍了docker搭建Hadoop CDH高可用集群实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Docker 容器日志分析

    Docker 容器日志分析

    这篇文章主要介绍了Docker 容器日志分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Docker 容器安装 Dify的两种方法详解

    Docker 容器安装 Dify的两种方法详解

    该文章介绍了如何使用Docker容器在Windows上安装Dify,方法一通过拉取Dify镜像并运行容器,方法二通过克隆Dify源代码并使用DockerCompose启动容器,两种方法各有优缺点,选择哪种方法取决于具体需求,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • 关于docker registry使用详解

    关于docker registry使用详解

    Docker Registry 是一个无状态,高度可扩展的服务器端应用程序,它存储并允许您分发Docker映像,本文给大家介绍docker registry使用及相关配置,感兴趣的朋友一起看看吧
    2022-03-03
  • docker安装nacos2.2.4图文详解(含:nacos容器启动参数、环境变量、常见问题整理)

    docker安装nacos2.2.4图文详解(含:nacos容器启动参数、环境变量、常见问题整理)

    文章详细介绍了如何在Docker中下载、安装和配置Nacos 2.2.4,包括在线和离线安装步骤、使用不同网络模式(如Host模式)以及一些常见问题的解决方法,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • Docker安全开放远程访问连接权限方式

    Docker安全开放远程访问连接权限方式

    文章介绍了如何配置Docker以实现远程访问、开启认证和通信加密,包括生成证书和私钥、配置Docker守护进程以及在IDEA和Maven中连接Docker服务的方法
    2024-11-11
  • docker容器分配固定ip的实现示例

    docker容器分配固定ip的实现示例

    如果不固定ip,每次主机重启后,docker会动态给容器分配ip,导致redis容器的IP自动换了 ,然后还得去改配置就很烦,本文主要介绍了docker容器分配固定ip的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12

最新评论