1. 直接设置docker容器时区修改
复制宿主机下面的zoneinfo文件到容器内
$ docker cp /usr/share/zoneinfo 容器id:/usr/share/
进去容器
$ docker exec -it 容器名 /bin/bash
在容器内设置时区,不用重启容器即可更改时间时区设置
$ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
$ echo "Asia/Shanghai" > /etc/timezone
$ date
### 这种出现了问题。 ###sudo docker cp /etc/localtime 【容器ID或者NAME】:/etc/localtime ###sudo docker cp -L /usr/share/zoneinfo/Asia/Shanghai 【容器ID或者NAME】:/etc/localtime
2: docker-compose 设置docker 与宿主机同步时间
#第一种方式(推荐):
environment:
TZ: Asia/Shanghai
#第二种方式:
environment:
SET_CONTAINER_TIMEZONE=true
CONTAINER_TIMEZONE=Asia/Shanghai
#第三种方式:
volumes:
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
3:DockerFile 设置docker 与宿主机同步时间
# 方法1
# 添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai
# 使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
# 方法2
# CentOS
RUN echo "Asia/shanghai" > /etc/timezone
# Ubuntu
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime