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