设置docker容器(container)时区

利用docker来部署服务,常常遇到的一个问题是如何解决容器内的时区问题.java

假设如今启动的镜像是tomcat:8.0.35-jre8docker

/*直接用宿主机器上的时区默认覆盖容器内的时区配置文件便可,也就是跟宿主机器一样的时区配置  */
# docker run -v /etc/localtime:/etc/localtime:ro --name=tomcat tomcat:8.0.35-jre8

可是我相信若是写过java的人仍然发现经过java 中new Date()获取到的仍然是容器默认的时区,而是宿主机器上的时区配置,由于java是经过获取timezone来设置时间的。不废话,继续看如下命令:segmentfault

/* 这里配置的环境变量 Asia/Shanghai就是我所须要的时区 */
# docker run -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro --name=tomcat tomcat:8.0.35-jre8

经过这样的启动方式,就是OK了。
固然聪明人确定不会本身每次都在启动的时候加这些配置,固然在基础镜像里面搞好咯。tomcat

原文链接:http://www.javashuo.com/article/p-buqhwuhd-q.htmlcode

相关文章
相关标签/搜索