docker容器中如何修改時間
docker容器中修改時間
我們在docker容器中直接通過命令行修改時間會有下面這個報錯:
date: can't set date: Operation not permitted
這是由于docker容器是基于Linux的Capability機(jī)制來進(jìn)行隔離。
而修改系統(tǒng)時間是需要有SYS_TIME權(quán)限才可以修改,docker容器默認(rèn)是沒有這個權(quán)限的。
所以我們可以在啟動容器的時候,加一個參數(shù)
--cap-add SYS_TIME
比如
docker run -it --cap-add SYS_TIME --name docker1101 apline /bin/sh
然后我們再去容器中執(zhí)行修改時間的命令:
date -s "2021-3-10 11:42:45" docker exec -i docker1101 /bin/sh -c 'date -s "2021-3-10 11:42:45"'
可以看到容器的時間已經(jīng)改變
不過通過這種方式修改容器的時間,事實上同時把宿主機(jī)的時間也會修改了。
如果這個宿主機(jī)上同時運行了其他的容器,那么這些容器的時間也會產(chǎn)生變化。
另外還有一種方式,可以用libfaketime
libfaketime是一個庫,用于修改docker容器時間而不影響宿主機(jī)的。
它能夠“覆蓋”應(yīng)用程序用來檢索當(dāng)前日期或時間的系統(tǒng)調(diào)用,并給這些調(diào)用提供偽造的值。
它發(fā)布于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"
docker容器修改時間報錯 date: cannot set date: Operation not permitted
docker容器修改時間 date -s 報錯 date: cannot set date: Operation not permitted
原因是在容器內(nèi)沒有權(quán)限進(jìn)行操作,啟動容器時授權(quán)即可。
docker-compose修改方法
添加 privileged: true
容器修改方法
docker run -itd --privileged=true -p 3306:3306 mysql:5.7.36
接下來就可以使用date -s修改時間了
直接修改時區(qū)
添加
environment: - TZ=Asia/Shanghai
如下圖:
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
給debian的docker容器添加crontab定時任務(wù)
這篇文章主要介紹了給debian的docker容器添加crontab定時任務(wù)的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08docker搭建Hadoop?CDH高可用集群實現(xiàn)
本文主要介紹了docker搭建Hadoop?CDH高可用集群實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07docker安裝nacos2.2.4圖文詳解(含:nacos容器啟動參數(shù)、環(huán)境變量、常見問題整理)
文章詳細(xì)介紹了如何在Docker中下載、安裝和配置Nacos?2.2.4,包括在線和離線安裝步驟、使用不同網(wǎng)絡(luò)模式(如Host模式)以及一些常見問題的解決方法,感興趣的朋友跟隨小編一起看看吧2025-02-02Docker安全開放遠(yuǎn)程訪問連接權(quán)限方式
文章介紹了如何配置Docker以實現(xiàn)遠(yuǎn)程訪問、開啟認(rèn)證和通信加密,包括生成證書和私鑰、配置Docker守護(hù)進(jìn)程以及在IDEA和Maven中連接Docker服務(wù)的方法2024-11-11