15.docker,容器内时间问题
试了网上各种改/etc/timezone及相关的配置,添加TZ环境变量,添加-Duser.timezone,最终结果是,容器内的时区是正确的,但是时间是错误的。忙活了一下午,没有搞定,还是决定自己弄一个基础的镜像。
1.上传准备好的jdk(jdk-8u261-linux-x64.tar.gz)
2.编写dockerfile
FROM centos:7 MAINTAINER lhnonline 0376lhn@gmail.com ADD jdk-8u261-linux-x64.tar.gz /usr/local/ RUN yum install -y kde-l10n-Chinese && \ localedef -c -f UTF-8 -i zh_CN zh_CN.UFT-8 && \ echo 'LANG="zh_CN.uft8"' > /etc/locale.conf ENV JAVA_HOME /usr/local/jdk1.8.0_261 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH $PATH:$JAVA_HOME/bin ENV TZ='Asia/Shanghai' ENV LANG zh_CN.uft8
3.build
docker build -t manager62:7000/jdk8:1.0.0 .
4.查看结果发现自己弄得还小一点
5.上传到私有仓库
6.使用
FROM manager62:7000/jdk8:1.0.0 MAINTAINER lhnonline 0376lhn@gmail.com COPY target/docker-test-1.0.0.jar /app.jar EXPOSE 8080 ENV CE=$CE ENV JAVA_OPTS=$JAVA_OPTS ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar --spring.profiles.active=$CE" ]
7.最终效果:(时间显示正常了)
8.补充
通过命令 docker login ,登陆到docker hub,通过 docker push 镜像名称 把镜像推送到docker hub,以后就可以随时随地用了。
推送到docker hub上镜像的名称要符合规范, dockerhub账号+“/”+镜像名称+“:”+版本号 ,才能正常推送。另外推送完成后,可以给镜像标签改成latest,从新推送一下。以后使用的时候不用指定版本号了,默认是latest。
changelog:
2020-09-29: 添加对中文支持