設置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

相關文章
相關標籤/搜索