解決 修改 docker 容器時間與宿主機不同

2022-05-21 22:06:11 字數 1213 閱讀 5513

這幾天,開發提了個需求 「測試需要模擬未來某天的業務,發現容器裡面沒有修改時間的許可權」,想在我們 k8s 集群上,調整容器時間

由於在容器中執行指令date +%t -s "18:00:00"會給出date: cannot set date: operation not permitted的錯誤。

可以通過新增--cap-add sys_time來實現,但是--cap-add sys_time是為了將宿主機的核心時間掛載進來與容器共享,因此容器時間更改了,宿主機時間也會跟著更改,可能會帶來更多的麻煩。所以這個辦法不是最優解

libfaketime該庫攔截所有用於檢索當前時間和日期的系統呼叫程式,通過為程式偽造時間和日期,讓程式可以看到我修改過的系統時間,而不需要更改真的系統時間

git clone 

cd libfaketime && make install

編譯之後裝在/usr/local/lib/faketime/libfaketime.so.1

啟動時候通重載入環境變數即可

在 docker 中如何使用

env faketime="+50d"編譯後啟動就可以看到時間的變化。

或者還可以容器中編譯使用

workdir /

run git clone

workdir /libfaketime/src

run make install

啟動程序時候設定環境變數

cmd ["/bin/sh", "-c", "ld_preload=/usr/local/lib/faketime/libfaketime.so.1 faketime_no_cache=1 python /srv/intercept/manage.py runserver 0.0.0.0:3000]

快速解決docker容器時間與本地時間不一致

在docker容器和系統時間不一致是因為docker容器的原生時區為0時區,而國內系統為東八區,當然,我們不深究其原因。1 進入容器 docker exec t i c360cc412528 bin bash c360cc412528 為容器id2 在 usr share zoneinfo目錄下找上...

docker修改容器gogs時區時間

公司內部搭建了乙個gogs git,是用docker部署的,但是發現提交的 什麼的時間跟伺服器時間不一致 提交上去的世界是utc時間不是中國的時間cst,相當於慢了8個小時 1 docker容器內的時區是utc 2 伺服器的時區是cts 一開始以為是gogs配置檔案問題,最好發現原來是docker容...

Docker容器 如何修改容器時間,時區問題修改

在進行操作的時候,我們先確定下時間錯誤是什麼引起的,是時間錯誤,還是時區問題 如果只是單純的時間異常,可以直接使用docker exec it u root 24795ac94ae7 bin sh 進入自己的容器進行修改就行了 注 要加 u root 不然許可權會不足,會提示permission d...