摘要:前几天用部署,在服务将数据写入时,发现时间相差了个小时,随后在网上查找解决办法。据了解是因为有些容器里没有目录。
前几天用docker部署mysql,在web服务将数据写入mysql时,发现时间相差了8个小时,随后在网上查找解决办法。
若用docker run 命令来运行docker的话,可以直接通过-v,将宿主机的时间与本地时间绑定到容器中,这样时间就会跟宿主机一样,例子:
docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -ti nginx bash
然后运行date,查看docker的时间;
也可以通过定义Dockerfile的ENV,设置TZ为Asia/shanghai,代码块如下:
RUN apk add --no-cache tzdata ENV TZ=Asia/Shanghai
另外docker-compose.yml文件来定义的话,跟Dockerfile是一样,在environment添加,代码块如下:
environment: TZ: Asia/Shanghai
其中tzdata这个依赖是必须的,没有这个,即使设置了ENV TZ=Asia/Shanghai,有些镜像的时间也不会变为北京时间,我用golang官方的镜像来构建时就遇到这个问题。据了解是因为有些容器里没有/usr/share/zoneinfo目录。
参考:
https://github.com/gliderlabs...
https://stackoverflow.com/que...
https://blog.csdn.net/dounine...
https://www.cnblogs.com/linux...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27729.html
摘要:不废话,继续看以下命令这里配置的环境变量就是我所需要的时区通过这样的启动方式,就是了。当然聪明人肯定不会自己每次都在启动的时候加这些配置,当然在基础镜像里面搞好咯。 利用docker来部署服务,经常遇到的一个问题是如何解决容器内的时区问题. 假设现在启动的镜像是tomcat:8.0.35-jre8 /*直接用宿主机器上的时区默认覆盖容器内的时区配置文件即可,也就是跟宿主机器同样的时区配...
摘要:不废话,继续看以下命令这里配置的环境变量就是我所需要的时区通过这样的启动方式,就是了。当然聪明人肯定不会自己每次都在启动的时候加这些配置,当然在基础镜像里面搞好咯。 利用docker来部署服务,经常遇到的一个问题是如何解决容器内的时区问题. 假设现在启动的镜像是tomcat:8.0.35-jre8 /*直接用宿主机器上的时区默认覆盖容器内的时区配置文件即可,也就是跟宿主机器同样的时区配...
摘要:在使用的时候,由于很多基础镜像都比较大,这个仅仅几兆的基础镜像受到了很多人喜欢,笔者也不例外,可是由于中的一些配置及命令与常见的等系统在一些方面不一样,下面来看看时区问题是如何解决的原因中,原生是不带时区相关的命令及文件的,需要安装额外的包 在使用docker的时候,由于很多基础linux镜像都比较大,alpine这个仅仅几兆的linux基础镜像受到了很多人喜欢,笔者也不例外,可是由...
阅读 4122·2022-09-16 13:49
阅读 1398·2021-11-22 15:12
阅读 1519·2021-09-09 09:33
阅读 1039·2019-08-30 13:15
阅读 1720·2019-08-29 15:30
阅读 654·2019-08-27 10:52
阅读 2643·2019-08-26 17:41
阅读 1896·2019-08-26 12:11