docker内时间设置

232 篇文章 0 订阅
140 篇文章 1 订阅

在使用tomcat官方docker 镜像时,程序在与微信通信过程中返回了时间差问题,查看后发现是docker 容器的问题。

 

问题

docker 官方镜像使用的都是UTC 标准时间,这就导致了比beijing时间晚8小时。

 

解决这一问题并不难,只要修正容器的时区就可以了。众所周知,对容器的修改并不会影响到镜像,所以又会出现这样一个问题,再次从镜像启动容器时,时间就会又变成UTC 标准时间。对于此问题,自然是可以使用docker commit 来解决,但我并不想这样做……

 

解决方案

基于centos 的镜像,系统时区是由/etc/localtime 控制

基于debian 的镜像,系统时区由/etc/timezone 控制

可将系统内的/usr/share/zoneinfo/Asia/Shanghai 文件直接复制到以上位置修改时区

mv /etc/localtime /etc/localtime_bak

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

但在基于centos 镜像内,只修改/etc/localtime ,tomcat 或者Nginx取的仍可能是UTC 时区,tomcat可配置catalina 启动文件的JAVA_OPTS参数,修正tomcat的时区

JAVA_OPTS="-Duser.timezone=GMT+08"

还有一种方式,就是同时设置/etc/timezone文件

 

docker build -t morrowind/centos .

Dockerfile

#Version: Centos 7.2 CST
FROM centos:latest
MAINTAINER Morro Wind "example@hotmail.com"
RUN yum -y -q upgrade
#update system timezone
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#update application timezone
RUN echo "Asia/Shanghai" >> /etc/timezone

通过Dockerfile 构建镜像时需要注意,对时区的修改一定要放在yum upgrade后面,否则upgrade 后,会修改时区为UTC

 

后面就可以基于此基础镜像,构建应用镜像了

要在安装的Docker设置Elasticsearch的密码,可以按照以下步骤进行操作: 1. 首先,确保已经按照引用中的方法成功安装了DockerDocker Compose。 2. 在你的项目目录下新建一个文件,命名为`docker-compose.yml`,并添加以下内容: ``` version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2 environment: - ELASTIC_PASSWORD=your_password - "discovery.type=single-node" ports: - 9200:9200 - 9300:9300 volumes: - esdata:/usr/share/elasticsearch/data volumes: esdata: ``` 注意将`your_password`替换为你想要设置的密码。 3. 保存并退出文件。 4. 打开终端,切换到项目目录,运行以下命令启动Elasticsearch容器: ``` docker-compose up -d ``` 这将下载并启动Elasticsearch容器。 5. 等待一段时间,Elasticsearch容器启动完成后,你就可以使用设置的密码进行访问了。 请注意,这只是一个简单的示例,实际情况下你可能还需要配置其他参数来满足你的需求。同时,确保在生产环境中设置强密码,并采取其他安全措施来保护你的Elasticsearch服务。 希望这个回答对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [使用Docker搭建Elasticsearch6.8.6集群及设置集群用户密码](https://blog.csdn.net/LYHVOYAGE/article/details/104577036)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [给使用docker安装的ES和Kibana设置账号密码](https://blog.csdn.net/ju_362204801/article/details/125426228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值