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