docker容器时间和主机时间不一致(时区问题)

Docker容器内默认使用UTC时间(标准时间),我们一般使用CST时间(东八区时间)。

首先先查看容器内时间

docker exec 容器ID date -R

方法1、修改Dockerfile

如果是自己编写Dockerfile制作的镜像在Dockerfile中添加如下代码

ENV TZ=Asia/Shanghai

方法2、修改创建容器命令

以创建Redis容器为例

docker run -d -p 6379:6379 --name redis --privileged=true \
--restart=always \
-v /home/pdocker/app/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /home/docker/app/redis/data:/data \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
redis \
redis-server /etc/redis/redis.conf

-v /etc/localtime:/etc/localtime:ro 使用宿主机时间作为容器内时间
-v /etc/timezone:/etc/timezone:ro 使用宿主机时区作为容器内时区

方法3、容器已经启动时 宿主机内修改

// 进入交互模式,下同
docker exec -it 容器ID /bin/bash 
//改时区
echo "Asia/Shanghai" > /etc/timezone 
//改本地时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
//需要重启容器,不重启部分项目可能会不生效
docker restart 容器ID 
// 查看时区
docker exec 容器ID date -R 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值