docker容器的时区问题和中文问题

为什么定时任务没执行? 为什么, 数据的插入时间是这个?

不知你们是不是在开发过程中, 有过如上的那些疑问. 有时真是百思不得其解, 将程序放到自己机器上运行好好的, 但一放到开发环境或测试环境, 就出现这种让人恼火的问题. 此时, 你或许看一关注下, 多个系统的时间是否一致, 是否都是东八区.

言归正传, 这里我要说的是docker容器化之后, 各个容器的时区设置和中文支持.

另外, 我还有一个不解的地方, 就是docker镜像的时间是不能修改的吗? 那我有这种测试场景时, 怎么解决? 换回虚拟机吗? 那我费这么大工夫搭建docker环境干嘛? 期望知道的大神, 能帮我解答下这个疑问.

情景一: 自己基于centos7, 扩展镜像.(解决了时区问题和中文支持问题)

Dockerfile

# 基础系统镜像
FROM daocloud.io/library/centos:7.2.1511
MAINTAINER pan <sd4015700@126.com>
LABEL Description="这是一个基础的系统镜像,基于CentOS 7,设置更新源,解决中文问题,并安装git(org.pzy/base-centos7:1.0)"  Version="1.0"
RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改时区
# 使用国内更新源,代替原始的更新源(大天朝的无奈)
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
ADD CentOS7-Base-163.repo /etc/yum.repos.d/
RUN yum clean all && yum makecache && \
    yum -y install kde-l10n-Chinese && \
    yum -y install glibc-common && \
    yum clean all && \
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 #设置中文环境
ENV LC_ALL "zh_CN.UTF-8"

情景二: 做一个基于oracle jdk8的镜像(解决了时区问题和中文支持问题)

Dockerfile

FROM daocloud.io/library/centos:7.2.1511
MAINTAINER pan <sd4015700@126.com>
LABEL Description="基于CentOS 7,安装了jre 8(org.pzy/oracle_jre8:1.0)"  Version="1.0"
RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改时区
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
ADD CentOS7-Base-163.repo /etc/yum.repos.d/
RUN yum clean all && yum makecache && \
    yum -y install kde-l10n-Chinese && \
    yum -y install glibc-common && \
    yum clean all && \
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 #设置中文环境
ENV LC_ALL "zh_CN.UTF-8"
ADD server-jre-8u162-linux-x64.tar.gz  /usr/lib/jvm/
RUN echo "export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162" >> /etc/profile && \
    echo "export JRE_HOME=/usr/lib/jvm/jdk1.8.0_162/jre" >> /etc/profile && \
    source /etc/profile
ENV JAVA_HOME /usr/lib/jvm/jdk1.8.0_162
ENV JRE_HOME /usr/lib/jvm/jdk1.8.0_162/jre
ENV PATH $PATH:$JAVA_HOME/bin:$JRE_HOME/bin

情景三: 做一个tomcat8的镜像(解决了时区问题和中文支持问题)
Dockerfile

From org.pzy/oracle_jre8:1.0
MAINTAINER pan <sd4015700@126.com>
LABEL Description="基于CentOS 7,安装了jre 8和tomcat8.5(org.pzy/oracle-jre8-tomcat85:1.0)"  Version="1.0"
ADD apache-tomcat-8.5.28.tar.gz  /usr/lib/tomcat/
RUN echo "export CATALINA_HOME=/usr/lib/tomcat/apache-tomcat-8.5.28" >> /etc/profile && \
    echo "export CATALINA_BASE=$CATALINA_HOME" >> /etc/profile && \
    echo "export CATALINA_TMPDIR=$CATALINA_HOME/tmp" >> /etc/profile && \
    source /etc/profile
ENV CATALINA_HOME /usr/lib/tomcat/apache-tomcat-8.5.28
ENV CATALINA_BASE $CATALINA_HOME
ENV PATH $PATH:$CATALINA_HOME/bin
EXPOSE 8080
CMD ["catalina.sh","run"]

情景四: 基于mysql的官方镜像,设置时区(只解决了时区问题)
当然, 你可以完全基于centos镜像, 再做一个mysql的镜像, 但是, 比较麻烦, 还有一个问题就是,做出的镜像有1.4g左右, 所以放弃了. 而我也只是要时间一致就ok. 所以就在官方基础上修改了.
Dockerfile

FROM mysql:5.7

MAINTAINER pan <sd4015700@126.com>
LABEL Description="基于mysql:5.7做成的org.pzy/mysql-cn:5.7"  Version="1.0"

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

情景五: 基于gogs的官方镜像,设置时区(只解决了时区问题)

FROM gogs/gogs:0.11.34

MAINTAINER pan <sd4015700@126.com>
LABEL Description="基于gogs/gogs:0.11.34做成的org.pzy/gogs-cn:1.0"  Version="1.0"

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

情景六: 基于jenkins的官方镜像,设置时区. (这里,有点不同, 是设置的jdk的时区,并未改变系统的时区, 为什么不改系统时区呢?因为没权限, 研究了一阵, 没弄出来, 所以只能将就着用了)(只解决了时区问题)
Dockerfile

FROM jenkins:2.60.3

MAINTAINER pan <sd4015700@126.com>
LABEL Description="基于jenkins做成的org.pzy/jenkins-cn:1.0"  Version="1.0"

# 这里解决jdk的时区问题(因为系统的时区不是东八区,但又不知道怎么修改这个镜像的时区,所以只能修改jdk的时区)
ENV JAVA_OPTS -Duser.timezone=Asia/Shanghai
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容