美文网首页
docker tomcat 日志时间时区不对

docker tomcat 日志时间时区不对

作者: sunland_0416 | 来源:发表于2020-11-27 15:38 被阅读0次

docker 启动时已经采用了-v /etc/localtime:/etc/localtime:ro来同步宿主机时间跟docker容器时间,但是发现docker 容器内Tomcat日志时间仍然不是宿主机时间,
检查下java环境的配置

java -XshowSettings

可以看到java配置

C:\Users\root>java -XshowSettings
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
VM settings:
    Max. Heap Size (Estimated): 1.75G
    Ergonomics Machine Class: client
    Using VM: Java HotSpot(TM) 64-Bit Server VM

Property settings:
    awt.toolkit = sun.awt.windows.WToolkit
    file.encoding = UTF-8
    file.encoding.pkg = sun.io
    file.separator = \
    java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
    java.awt.printerjob = sun.awt.windows.WPrinterJob
    java.class.path = .
    java.class.version = 52.0
    java.endorsed.dirs = C:\Program Files\Java\jre1.8.0_191\lib\endorsed
    java.ext.dirs = C:\Program Files\Java\jre1.8.0_191\lib\ext
        C:\WINDOWS\Sun\Java\lib\ext
    java.home = C:\Program Files\Java\jre1.8.0_191
    java.io.tmpdir = C:\Users\root\AppData\Local\Temp\
    java.library.path = C:\Program Files (x86)\Common Files\Oracle\Java\javapath
        C:\WINDOWS\Sun\Java\bin
        C:\WINDOWS\system32
        C:\WINDOWS
        C:\Program Files (x86)\Common Files\Oracle\Java\javapath
        C:\ProgramData\Oracle\Java\javapath
        D:\Python3\Scripts\
        D:\Python3\
        C:\Program Files (x86)\Intel\iCLS Client\
        C:\Program Files\Intel\iCLS Client\
        C:\Windows\system32
        C:\Windows
        C:\Windows\System32\Wbem
        C:\Windows\System32\WindowsPowerShell\v1.0\
        C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
        C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL
        C:\Program Files\Intel\Intel(R) Management Engine Components\DAL
        C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT
        C:\Program Files\Intel\Intel(R) Management Engine Components\IPT
        C:\Program Files\Intel\WiFi\bin\
        C:\Program Files\Common Files\Intel\WirelessCommon\
        C:\WINDOWS\system32
        C:\WINDOWS
        C:\WINDOWS\System32\Wbem
        C:\WINDOWS\System32\WindowsPowerShell\v1.0\
        C:\WINDOWS\System32\OpenSSH\
        D:\Program Files\nodejs\
        C:\WINDOWS\system32
        C:\WINDOWS
        C:\WINDOWS\System32\Wbem
        C:\WINDOWS\System32\WindowsPowerShell\v1.0\
        C:\WINDOWS\System32\OpenSSH\
        C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR
        C:\Program Files\Docker\Docker\resources\bin
        C:\ProgramData\DockerDesktop\version-bin
        C:\Users\cbhbit\AppData\Local\Microsoft\WindowsApps
        D:\Program Files\Docker Toolbox
        C:\Users\cbhbit\AppData\Roaming\npm
        D:\Program Files\Fiddler
        C:\Users\cbhbit\AppData\Local\Microsoft\WindowsApps
        D:\ChangZhi\dnplayer2
        D:\tools
        D:\Program Files\Tesseract-OCR

        .
    java.runtime.name = Java(TM) SE Runtime Environment
    java.runtime.version = 1.8.0_191-b12
    java.specification.name = Java Platform API Specification
    java.specification.vendor = Oracle Corporation
    java.specification.version = 1.8
    java.vendor = Oracle Corporation
    java.vendor.url = http://java.oracle.com/
    java.vendor.url.bug = http://bugreport.sun.com/bugreport/
    java.version = 1.8.0_191
    java.vm.info = mixed mode
    java.vm.name = Java HotSpot(TM) 64-Bit Server VM
    java.vm.specification.name = Java Virtual Machine Specification
    java.vm.specification.vendor = Oracle Corporation
    java.vm.specification.version = 1.8
    java.vm.vendor = Oracle Corporation
    java.vm.version = 25.191-b12
    line.separator = \r \n
    os.arch = amd64
    os.name = Windows 10
    os.version = 10.0
    path.separator = ;
    sun.arch.data.model = 64
    sun.boot.class.path = C:\Program Files\Java\jre1.8.0_191\lib\resources.jar
        C:\Program Files\Java\jre1.8.0_191\lib\rt.jar
        C:\Program Files\Java\jre1.8.0_191\lib\sunrsasign.jar
        C:\Program Files\Java\jre1.8.0_191\lib\jsse.jar
        C:\Program Files\Java\jre1.8.0_191\lib\jce.jar
        C:\Program Files\Java\jre1.8.0_191\lib\charsets.jar
        C:\Program Files\Java\jre1.8.0_191\lib\jfr.jar
        C:\Program Files\Java\jre1.8.0_191\classes
    sun.boot.library.path = C:\Program Files\Java\jre1.8.0_191\bin
    sun.cpu.endian = little
    sun.cpu.isalist = amd64
    sun.desktop = windows
    sun.io.unicode.encoding = UnicodeLittle
    sun.java.launcher = SUN_STANDARD
    sun.jnu.encoding = GBK
    sun.management.compiler = HotSpot 64-Bit Tiered Compilers
    sun.os.patch.level =
    sun.stderr.encoding = ms936
    sun.stdout.encoding = ms936
    user.country = CN
    user.dir = C:\Users\root
    user.home = C:\Users\root
    user.language = zh
    user.name = root
    user.script =
    user.timezone =
    user.variant =

Locale settings:
    default locale = 中文
    default display locale = 中文 (中国)
    default format locale = 中文 (中国)
    available locales = , ar, ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO,
        ar_KW, ar_LB, ar_LY, ar_MA, ar_OM, ar_QA, ar_SA, ar_SD,
        ar_SY, ar_TN, ar_YE, be, be_BY, bg, bg_BG, ca,
        ca_ES, cs, cs_CZ, da, da_DK, de, de_AT, de_CH,
        de_DE, de_GR, de_LU, el, el_CY, el_GR, en, en_AU,
        en_CA, en_GB, en_IE, en_IN, en_MT, en_NZ, en_PH, en_SG,
        en_US, en_ZA, es, es_AR, es_BO, es_CL, es_CO, es_CR,
        es_CU, es_DO, es_EC, es_ES, es_GT, es_HN, es_MX, es_NI,
        es_PA, es_PE, es_PR, es_PY, es_SV, es_US, es_UY, es_VE,
        et, et_EE, fi, fi_FI, fr, fr_BE, fr_CA, fr_CH,
        fr_FR, fr_LU, ga, ga_IE, hi, hi_IN, hr, hr_HR,
        hu, hu_HU, in, in_ID, is, is_IS, it, it_CH,
        it_IT, iw, iw_IL, ja, ja_JP, ja_JP_JP_#u-ca-japanese, ko, ko_KR,
        lt, lt_LT, lv, lv_LV, mk, mk_MK, ms, ms_MY,
        mt, mt_MT, nl, nl_BE, nl_NL, no, no_NO, no_NO_NY,
        pl, pl_PL, pt, pt_BR, pt_PT, ro, ro_RO, ru,
        ru_RU, sk, sk_SK, sl, sl_SI, sq, sq_AL, sr,
        sr_BA, sr_BA_#Latn, sr_CS, sr_ME, sr_ME_#Latn, sr_RS, sr_RS_#Latn, sr__#Latn,
        sv, sv_SE, th, th_TH, th_TH_TH_#u-nu-thai, tr, tr_TR, uk,
        uk_UA, vi, vi_VN, zh, zh_CN, zh_HK, zh_SG, zh_TW

用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
其中选项包括:
    -d32          使用 32 位数据模型 (如果可用)
    -d64          使用 64 位数据模型 (如果可用)
    -server       选择 "server" VM
                  默认 VM 是 server.

    -cp <目录和 zip/jar 文件的类搜索路径>
    -classpath <目录和 zip/jar 文件的类搜索路径>
                  用 ; 分隔的目录, JAR 档案
                  和 ZIP 档案列表, 用于搜索类文件。
    -D<名称>=<值>
                  设置系统属性
    -verbose:[class|gc|jni]
                  启用详细输出
    -version      输出产品版本并退出
    -version:<值>
                  警告: 此功能已过时, 将在
                  未来发行版中删除。
                  需要指定的版本才能运行
    -showversion  输出产品版本并继续
    -jre-restrict-search | -no-jre-restrict-search
                  警告: 此功能已过时, 将在
                  未来发行版中删除。
                  在版本搜索中包括/排除用户专用 JRE
    -? -help      输出此帮助消息
    -X            输出非标准选项的帮助
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  按指定的粒度启用断言
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  禁用具有指定粒度的断言
    -esa | -enablesystemassertions
                  启用系统断言
    -dsa | -disablesystemassertions
                  禁用系统断言
    -agentlib:<libname>[=<选项>]
                  加载本机代理库 <libname>, 例如 -agentlib:hprof
                  另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
    -agentpath:<pathname>[=<选项>]
                  按完整路径名加载本机代理库
    -javaagent:<jarpath>[=<选项>]
                  加载 Java 编程语言代理, 请参阅 java.lang.instrument
    -splash:<imagepath>
                  使用指定的图像显示启动屏幕
有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。

java时区.png

在宿主机时间正确的情况下
解决方案:修改docker容器的/etc/profile文件

......
export TZ='Asia/Shanghai'

添加环境变量,然后使用命令source /etc/profile使其生效

然后启动tomcat的时候会读取/etc/timzone来获取时区

docker exec -it tomcat bash
echo "Asia/Shanghai" > /etc/timezone

相关文章

网友评论

      本文标题:docker tomcat 日志时间时区不对

      本文链接:https://www.haomeiwen.com/subject/mcmxwktx.html