1. 程式人生 > >修改docker時區

修改docker時區

前幾天遇到這樣一個業務場景,資料庫執行在docker 中,docker 的市區是utc 所以就跟北京時間相差8個小時。但是又不能重新執行一個容器,只能保證資料庫執行狀態,並把宿主機的時區複製給docker 容器。很苦惱,

首先我先把宿主機的時區改成啦CST 北京時間。然後把宿主機的時區複製給docker 容器。命令如下

docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime

當然也可以進入容器進行修改時區(不過我的容器修改的時候總是報/etc/localtime 檔案只讀,不讓修改。所以就用了上面的方法),命令如下

首先新增所有的時區
然後再修改時區

apk add tzdata 
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
echo "Asia/Shanghai" > /etc/timezone

當然,在容器內改,也很麻煩,每次啟動新的容器那麼就要修改,所以在dockerfile 中修改更好啦。命令如下

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone