You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Docker容器日期时区并获取更新时间的运行容器Shell

Docker容器内修改日期与时区的解决方案

问题场景

在运行中的Docker容器内执行日期修改命令:

root@691e271b0e6f:/# date -s 2023-12-01  

出现权限错误提示:

date: cannot set date: Operation not permitted
Fri Dec 01 00:00:00 UTC 2023

预期执行后可成功修改系统日期,无权限报错。

修改容器日期的解决方法

Docker容器默认与主机共享系统时钟,不具备修改时间的权限。要让容器能够修改自身时间,可通过以下方式配置:

  1. 启动容器时添加权限
    启动容器时添加--cap-add SYS_TIME参数,仅赋予容器修改时间的必要权限:

    docker run -d --cap-add SYS_TIME [镜像名称]
    

    若需更高权限(不推荐,权限范围过大),可使用--privileged参数:

    docker run -d --privileged [镜像名称]
    

    容器启动后进入终端,即可正常执行date -s命令修改日期。

  2. 调整运行中容器的配置(需重启)
    若容器已在运行,先停止容器:

    docker stop [容器ID/名称]
    

    找到容器的配置文件(通常位于/var/lib/docker/containers/[容器ID]/config.v2.json),在CapAdd数组中添加"SYS_TIME",或者将Privileged字段设为true。修改完成后重启容器:

    docker start [容器ID/名称]
    

修改容器时区的方法

若需调整容器时区,可选择以下几种简便方式:

  • 启动时挂载主机时区文件
    直接复用主机的时区配置:
    docker run -d -v /etc/localtime:/etc/localtime:ro [镜像名称]
    
  • 通过环境变量指定时区
    启动容器时设置TZ环境变量:
    docker run -d -e TZ="Asia/Shanghai" [镜像名称]
    
  • 进入容器后手动配置时区
    以Debian/Ubuntu系列镜像为例,先安装时区管理工具:
    apt update && apt install -y tzdata
    
    可通过交互式命令选择时区:
    dpkg-reconfigure tzdata
    
    或直接复制对应时区文件完成配置:
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    echo "Asia/Shanghai" > /etc/timezone
    

内容的提问来源于stack exchange,提问作者Harsha G V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 22:05:26