修改linux以及Docker时间

修改Docker容器的时间和宿主时间一致

在使用docker时,发现时间和宿主机的时间相差8小时

  • 宿主机使用的是CST时间
  • 容器使用的是UTC时间

1、查看宿主机时间

《修改linux以及Docker时间》
当发现宿主机时间不符时,我们可以使用两种方法来修改时间

  • 系统时间修改

    date -s [修改时间] 
    #将系统日期设定为2021年04月06日
    date -s 04/06/2021
    #时间设为11:39:09
    date -s 11:39:09
    

    修改完后执行:clock -w ,强制将时间写入COMS!

  • 时区修改

    date -R [先查看时区] 
    # 修改时区 将Asia/shanghai-上海时区写入当前时区
    cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
    # cp -f 修改时区可能报错 需要使用ln -sf
    ln -sf  /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
    #提示是否覆盖 输入Y回车 然后date查看时区和时间(CST,中国时区)
    

注意: 修改之后,需要将时间强制写入COMS! 否则重启之后又会还原

2、查看容器时间

  • 先进入容器,并查看容器时间
    docker exec -it [CONTAINER ID] /bin/bash
    

    《修改linux以及Docker时间》

  • 容器时间与宿主机的时间不同,修改时间
    cd /etc/
    #在容器中修改下/etc/localtime文件的名称,避免冲突。
    mv localtime localtime_old
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    

    《修改linux以及Docker时间》

    宿主主机和容器时间一致

3、timedatectl相关命令

  • 显示系统的当前时间和日期 timedatectl
    《修改linux以及Docker时间》

  • 查看当前时区 timedatectl | grep Time
    《修改linux以及Docker时间》

  • 查看所有可用的时区 timedatectl list-timezones

  • 根据地理位置找到本地的时区 timedatectl list-timezones | egrep -o "Asia/S.*"
    《修改linux以及Docker时间》

  • 在Linux中设置本地时区 timedatectl set-timezone "Asia/Shanghai"

    • 使用和设置协调时间 timedatectl set-timezone UTC
  • 设置日期和时间 timedatectl set-time '12:16:40 2021-04-06'

    • 只设置日期 timedatectl set-time 20210406
    • 只设置时间 timedatectl set-time 12:16:40
  • 将Linux系统时钟同步到远程NTP服务器

    NTP即Network Time Protocol(网络时间协议),是一个互联网协议,用于同步计算机之间的系统时钟。timedatectl实用程序可以自动同步你的Linux系统时钟到使用NTP的远程服务器。

    注意,必须在系统上安装NTP以实现与NTP服务器的自动时间同步。

    • 开启自动时间同步到远程NTP服务器 timedatectl set-ntp true
    • 禁用NTP时间同步到远程NTP服务器 timedatectl set-ntp false
    原文作者:java白勺
    原文地址: https://blog.csdn.net/weixin_43836290/article/details/115458284
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞