精华内容
下载资源
问答
  • Docker 修改容器时间和宿主机时间一致(标准北京时间)
    万次阅读
    2020-05-15 17:56:54

    # 查看时间配置文件

    ls   /usr/share/zoneinfo/Asia/Shanghai

    ls  /etc/timezone                     

    # 如果有显示,直接将  timezone 文件替换 为 Shanghai  并重命名,如需要记得备份 timezone

    cp /usr/share/zoneinfo/Asia/Shanghai  /etc/timezone

    然后,使用 date 看一眼时间变正常了

    date 

    如果没有变,那就换一个替换名:

    localtime

    cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

    # 如果没有

    apt-get update

    apt-get install -y tzdata

    安装后再执行

    更多相关内容
  • 首先进入容器docker exec -it /bin/sh XXXXXXXX查询时间date -R 近期在docker中运行容器发现时间和本地时间相差8小时,找了找原因,发现是容器运行的时区不正确,验证了下宿主机上的时区是正确的,于是想到吧本地...

    在进行操作的时候,我们先确定下时间错误是什么引起的,是时间错误,还是时区问题

    如果只是单纯的时间异常,可以直接使用docker exec -it -u root 24795ac94ae7 /bin/sh 进入自己的容器进行修改就行了

    注:要加-u root 不然权限会不足,会提示Permission denied

    然后就是直接使用date 命令修改时间就ok.

    如果是时区问题那么要复杂一点,按照下面步骤一步步来。

    1.以root身份进入容器

    docker exec -it -u root 24795ac94ae7 /bin/sh

    可以使用date -R 查看时间

    2.在容器中创建文件

    mkdir -p /usr/share/zoneinfo/Asia

    3.回到宿主机,复制宿主机里的文件到容器中

    docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia

    4. 进入容器

    docker exec -it -u root 容器Id或容器名 bash

    执行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    5.执行date -R 查看时区显示时间是否正确

    搞定

    展开全文
  • 以普通方式运行docker容器 docker run -it --rm --name centos centos /bin/bash 参数说明: -it: 表示启用一个伪终端,并以交互方式运行 --rm: 表示退出之后立马删除该...此时进入容器之后执行修改容器时间的指...

    以普通方式运行docker容器

    docker run -it --rm --name centos centos /bin/bash
    

    参数说明:

    -it: 表示启用一个伪终端,并以交互方式运行
    --rm: 表示退出之后立马删除该容器
    --name: 表示给容器起一个名字
    centos: 表示镜像名称
    /bin/bash: 表示运行于bash程序
    

    此时进入容器之后执行修改容器时间的指令

    date -s 08/24/2006
    date -s 13:02:00

    会给出date: cannot set date: Operation not permitted的错误

    那么如何才能修改容器的时间呢? 主要是因为有时候需要测试一些定时任务的场景

    退出之前的容器, 以如下方式重新进入容器:

    docker run -it --cap-add SYS_TIME --rm --name centos centos /bin/bash

    进入容器再使用指令

    date -s 08/24/2006
    date -s 13:02:00

    修改时间, 此时就可以修改成功了.

    这个和之前的方式有什么区别呢?多了--cap-add SYS_TIME参数

    由于docker容器的隔离是基于Linux的Capability机制实现的, Linux的Capability机制允许你将超级用户相关的高级权限划分成为不同的小单元. 目前Docker容器默认只用到了以下的Capability.

    CHOWN, 
    DAC_OVERRIDE, 
    FSETID, 
    FOWNER, 
    MKNOD, 
    NET_RAW, 
    SETGID,  
    SETUID, 
    SETFCAP, 
    SETPCAP, 
    NET_BIND_SERVICE, 
    SYS_CHROOT, 
    KILL, 
    AUDIT_WRITE
    

    而要修改系统时间需要有SYS_TIME权限.
    使用 --cap-add--cap-drop 可以添加或禁用特定的权限.

    --privileged参数也可以达到开放权限的作用, 与--cap-add的区别就是, --privileged是将所有权限给容器.

    docker使用--privileged--cap-add--cap-drop 来对容器本身的能力进行开放或限制.

    展开全文
  • docker容器修改时间

    千次阅读 2021-03-31 14:32:50
    我们在docker容器中直接通过命令行修改时间会有下面这个报错: date: can't set date: Operation not permitted 这是由于docker容器是基于Linux的Capability机制来进行隔离。 而修改系统时间是需要有SYS_TIME权限才...

    我们在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"
    
    展开全文
  • faketime修改docker容器时间

    千次阅读 2020-09-09 20:39:59
    【faketime修改docker容器时间】 准备: 1、一个有jdk环境的测试镜像 2、一个可执行测试jar应用 3、faketime工具 github下载地址:https://github.com/wolfcw/libfaketime 测试验证: 宿主机时间: ...
  • 一次偶然发现mysql的系统时间不对,初步怀疑是系统时间的问题,但是mysql是docker的容器服务器,就进去查看一番,发现时区和宿主机上的时间不一致,下面就来给同学们一起了解和解决一下。 二、现象 查看centos...
  • Docker容器时间与主机时间不一致 通过date命令查看时间 查看主机时间 [root@localhost ~]# date 2016年 07月 27日 星期三 22:42:44 CST 查看容器时间 root@b43340ecf5ef:/#date Wed Jul 27 14:43:31 UTC 2016 ...
  • k8s集群修改pod中容器时间

    千次阅读 2021-04-01 17:31:22
    k8s集群 修改pod中容器时间 问题 当需要测试某些功能时,需要修改系统时间,当进入pod的容器之后,执行date命令报错!!! root@world-106-5bb9785bd8-7rlmd:/app# date -s 23:50:00 date: cannot set date: ...
  • 修改容器的时区

    2019-09-18 06:56:09
    修改容器的时区: docker ps -a (查看下容器ID) 到容器里查看下时间(时区): docker exec -it <容器ID> /bin/bash $ date $ exit 用宿主机的时区替换容器的时区: docker cp /etc/localtime <容器ID>...
  • # 挂在主机时区文件模版 ... volumeMounts: - mountPath: /etc/localtime name: host-time readOnly: true ... volumes: - hostPath: path: /etc/localtime type: "" ...# 修改etcd vi /etc/...
  • Docker修改容器内的时间

    千次阅读 2016-11-18 12:54:27
    Docker修改容器内的时间    docker run --name 《name》 -v /etc/localtime:/etc/localtime:ro ...  把时区设置加入到Dockerfile中  # Ubuntu  RUN echo “Asia/shanghai” 》 /etc/timezone;  # CentOS...
  • 容器时间更改时区

    2020-04-24 15:29:32
    容器时间更改时区(从0时区改为东八区) 1、容器可以进入、可以重启的情况 docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID:/etc/localtime 复制宿主机、容器自己的时区到localtime即可,不放心可以重启容器 2...
  • ubuntu容器下时区修改方法

    千次阅读 2019-04-12 05:32:15
    这篇文章简单memo一下ubuntu或者debian容器下的时区设定。这本来是timedatectl 直接设定就可以解决的问题。
  • 容器时间问题: 如果想要直接进入容器,使用date -s修改日期,则会出现一个date: cannot set date: Operation not permitted的错误,而且也不会成功。 这是由于docker容器的隔离是基于Linux的Capability机制实现...
  • 在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致 发现两者之间的时间相差了八个小时 宿主机采用了CST时区,CST应该是指(China Shanghai Time,东八区时间) 容器采用了UTC时区,UTC应该是指...
  • 问题:docker 容器默认会采用utc时区,所以K8s所起容器会比当前时间慢八个小时。 解决:通过Pod Preset预设置时区环境变量或挂载宿主机时间 1.配置设置时区的Pod Preset 对应的Pod Preset对象创建文件如下: api...
  • Docker 容器时间修改成东八区

    千次阅读 2022-03-10 15:40:28
    使用数据库或者开发的过程中经常会用到系统时间容器可能与主机并不一致,记录一下两种常用的解决方法。 开发时 经常会更新容器,配置成文件比较方便。 我这边经常使用docker-compose.yml配置,如下 version: "3" ...
  • XXL-JOB用镜像启动后发现时间到了无法触发,然后发现是由于容器时区的问题。 未解决前docker run语句 docker run -d --name xxl-job -p 5080:5080 镜像id 解决办法,加个参数-e TZ=Asia/Shanghai run语句如下 ...
  • Docker容器时间设置

    千次阅读 2019-01-28 15:35:18
    默认容器使用UTC时间,跟本地时间相差8个小时,在查看日志的时候时间偏差很不爽,于是参考了网上资料之后做了一些修改,记录下 1.修改Dockerfile文件,加入命令 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/...
  • docker mysql 容器中时间修改一个简单的方法来修改容器中的时间 一个简单的方法来修改容器中的时间 cd /usr/share/zoneinfo/Asia/ ls 找到Shanghai 文件所在的位置,把这个文件覆盖容器中的/etc/localtime 文件就...
  • docker 修改 ubuntu容器默认系统时间

    千次阅读 2018-11-26 18:35:06
    root@9999075703bf:/# date ...需要修改成北京时间修改前,先看看 ls /usr/share/zoneinfo/Asia/Shanghai ls /etc/timezone #这两条如果有就直接执行以下命令 echo "Asia/Shanghai" ...
  • 1.使用mysql数据库查询当前日期的时候发现时间并不吻合 select CURRENT_DATE(),CURRENT_TIME(); 2.数据库的配置问题 ​ 在window11系统上,使用VMware Workstation软件,配置的虚拟机 ​ 虚拟机系统为centos7,...
  • docker容器修改时间 date -s 报错 date: cannot set date: Operation not permitted 原因是在容器内没有权限进行操作,启动容器时授权即可。 docker-compose修改方法: 添加 privileged: true 容器修改方法: ...
  • Docker 修改docker容器内部时间

    千次阅读 2018-08-17 13:41:45
    参考:https://blog.csdn.net/u012373815/article/details/52782807 转载于:https://blog.51cto.com/wsxxsl/2161103
  • Docker修改容器默认存储路径

    千次阅读 2022-02-21 15:37:04
    有多种方式是可以修改docker默认存储目录路径的,但是最好是在docker安装完成后,第一时间便修改docker的默认存储位置路径为其他磁盘空间较大的目录(一般企业中为/data目录),规避迁移数据过程中所造成的风险。
  • Linux和Docker容器时间都不对解决方案

    千次阅读 2021-11-10 14:44:31
    先调整Docker时区,进入Docker容器查看当前时区: #进入Docker容器(mysql为你的容器名) ... 重启 Docker容器,然后查看容器时间: #重启Docker容器 docker restart mysql #查看容器时间 docker .
  • docker 容器时间操作

    千次阅读 2021-01-11 15:00:54
    date # 查看容器时间命令 # root 用户进入容器 sudo docker exec -it -u root [container id] /bin/bash 修改时间与宿主时间一致 使用root用户进入容器后 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ...
  • 查看宿主机时间 date 进入docker中的nginx容器 docker exec -it nginx /bin/bash 查看时间 date 暂未解决!!!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 326,561
精华内容 130,624
关键字:

修改容器的时间