我正在嘗試與我的主機同步碼頭集裝箱的時區。我的主機使用ISM,並且docker容器(使用tomcat映像)默認使用UTC。我讀過,我們要安裝卷共享主機的時區:與碼頭集裝箱共享主機時區
$ docker run -t -i -p 8080:8080 -p 8090:8090 -v /etc/localtime:/etc/localtime:ro tomcat:7.0.69-jre8 /bin/bash
之後,我可以檢查檢索日期是一樣的主持人:
$ date
Fri Jul 22 13:53:45 IST 2016
當我部署我的應用程序,我嘗試更新日期,我可以看到2016年7月22日的日期正在使用我的瀏覽器時區,這與Docker容器正在運行的主機相同。但debbuging應用程序的服務器端我可以看到日期轉換爲UTC時區。這意味着Docker容器並未真正使用我安裝的主機卷。
我錯過了什麼?
另一種方法我試過了,做的工作是更新的時區的泊塢窗容器:
$ dpkg-reconfigure tzdata // Selecting the corresponding options afterwards
這樣我可以看到在兩個相同的時區:客戶端和服務器端的我的應用程序。
在先進的感謝
這聽起來像你已經列出了與碼頭工人和工作中的應用程序是有問題的零件兩種方式?不確定我們如何調試您的應用程序,因爲我們沒有關於甚至是什麼的任何細節。 – BMitch
我列出了兩種應該可以工作的方法,是的,應用程序似乎是有問題的。該應用程序是我部署到tomcat docker容器中的一個GWT應用程序,我將端口暴露給主機以便能夠訪問應用程序並調試應用程序(您可以在docker命令中看到端口8080和8090)。我懷疑tomcat docker容器提供的jdk正在發生什麼。 – despadina
[如何更改Tomcat 7的服務器時區?](http://stackoverflow.com/questions/28777322/how-to-change-tomcat-7s-server-timezone) – BMitch