目錄
- 1. Linux 系統
- 1.1 通過 timedatectl 命令操作
- 1.2 直接修改 /etc/localtime 文件
- 2. Docker 容器中的 Linux
操作環境:
CentOS
/AlmaOS
MySQL Docker
鏡像
1. Linux 系統
1.1 通過 timedatectl 命令操作
-
使用
timedatectl list-timezones
命令列出可用的時區列表,以便選擇要設置的時區。 -
使用
timedatectl set-timezone
命令設置所選的時區。例如,要將時區設置為 “
Asia/Shanghai
”,您可以執行以下命令:sudo timedatectl set-timezone Asia/Shanghai
-
使用
timedatectl
命令驗證時區設置是否已經生效:timedatectl
將看到類似以下輸出:
Local time: Tue 2024-02-20 16:36:57 CST Universal time: Tue 2024-02-20 08:36:57 UTC RTC time: Tue 2024-02-20 08:36:57 Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: yes NTP service: active RTC in local TZ: no
這表明時區已經成功設置為 "
Asia/Shanghai"
。 -
還可以通過
date
命令查看系統時間date # 輸入如下: Tue Feb 20 16:41:03 CST 2024
1.2 直接修改 /etc/localtime 文件
如果 Linux
系統中沒有 timedatectl
命令,也可以手動修改 /etc/localtime
文件來設置時區。
-
例如,要將時區設置為 “
Asia/Shanghai
”,可以執行以下命令:sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
這將創建一個指向
/usr/share/zoneinfo/Asia/Shanghai
文件的符號鏈接,使時區設置為 “Asia/Shanghai
”。 -
最后,確保系統時間和硬件時間同步:
sudo hwclock --systohc
【注】
hwclock
是一個 Linux 命令,用于管理系統的硬件時鐘(Hardware Clock)。硬件時鐘是計算機硬件中的一個部分,用于記錄系統時間。它通常是一個獨立于操作系統的時鐘電路,能夠在系統關閉時保持運行,并持續記錄時間 -
通過
date
命令查看系統時間date # 輸入如下: Tue Feb 20 16:41:03 CST 2024
2. Docker 容器中的 Linux
如需創建時指定時區請參閱: Docker 創建容器并指定時區
下面的操作僅針對于已創建的容器:
一般 Docker
容器中的 Linux
都是最小化安裝的,沒有太多軟件集,如果需要某些命令沒有的話,也可以自己安裝,但是會影響到容器的部分性能;而且該操作僅在此容器有效,在其他服務器運行鏡像的時候就需要重新安裝。
畢竟 Docker
容器中的也是 Linux
,所以與上面直接操作 Linux
系統的方式是一樣的;下面以 直接修改 /etc/localtime 文件
為例:
-
先進入到容器中,
# 通過容器名稱 docker exec -it containerName bash # 或通過容器的 id 標識 docker exec -it containerId bash
docker exec
更詳細的操作參考:Docker 進入容器,并在容器內執行命令 -
例如,要將時區設置為 “
Asia/Shanghai
”,可以執行以下命令:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
這將創建一個指向
/usr/share/zoneinfo/Asia/Shanghai
文件的符號鏈接,使時區設置為 “Asia/Shanghai
”。 -
重啟容器
docker restart 容器名
-
然后進入容器,并通過 date 命令查看系統時間
date # 輸入如下: Tue Feb 20 16:41:03 CST 2024
【注】這個操作僅在這個容器中有效,通過鏡像新創建容器的時區還是會有問題,所以建議創建的時候直接指定時區,方法參考:Docker 創建容器并指定時區。