【Docker】宿主机与内部时差配置
场景
当我们系统的时间与docker容器的时间存在时间差,是因为docker本身的时区没被指定
命令
1 | 查看linux 时间 |
1 |
|
如下:
解决方式
Dockerfile 设置时间
通过dockerfile 构建镜像时,为其所有的容器设置时区
Dockerfile 文件
1 | 镜像的地址 |
文件结构
1 | docker_build_file |
构建镜像 1
docker build -t sys_api .
启动容器
1 | docker run -d -p 8181:8181 -v /root/logs/sys_api:/app/log --name sys_api sys_api |
docker 配置时间
在容器启动时,指定改容器的时区
启动容器
1、使用 docker run
的 -e
参数设置环境变量
1 | docker run -d -p 8181:8181 -v /root/logs/sys_api:/app/log --name sys_api -e TZ=Asia/Shanghai sys_api |
2、通过 docker run
的 --volume
参数挂载
/etc/localtime
文件:
1 | docker run -d -p 8181:8181 -v /root/logs/sys_api:/app/log -v /etc/localtime:/etc/localtime:ro --name sys_api sys_api |
3、通过 docker run
的 --volume
参数挂载
/etc/timezone
文件:
1 | docker run -d -p 8181:8181 -v /root/logs/sys_api:/app/log -v /etc/timezone:/etc/timezone:ro --name sys_api sys_api |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.