一、前言

在开发程序的时候,发现postgresql数据库的时区和北京时间差了8个小时,原因是postgresql使用的是默认的Etc/UTC时区。因此需要改掉,改成PRC,因为装在docker容器中,需要在docker中操作。

二、操作docker容器

1、查看当前所有的容器

docker ps -a

如果权限不够就在前面加上sudo

2、找到docker容器ID

根据第一步,找到postgresql的容器idCONTAINER ID,比方是a3a3a3a3

3、拷贝postgresql.conf文件到服务器某个目录

1
sudo docker cp a3a3a3a3:/var/lib/postgresql/data/postgresql.conf /apps/omp/

拷贝到/apps/omp/目录下。

4、编辑postgresql.conf文件

sudo vi postgresql.conf

在命令模式下查找timezone关键字,/timezone,会定位到字符串的位置,想查找下一个,按”n”。

输入 i 进入编辑模式,开始编辑文本。

timezone = 'Etc/UTC'修改成timezone = 'PRC'

按esc,再查询下一个timeout,都改成PRC。

最后保存并退出,:wq

5、复制修改后的文件到容器

sudo docker cp /apps/omp/postgresql.conf a3a3a3a3:/var/lib/postgresql/data/

这个命令会直接覆盖原来的文件。

6、重启容器

sudo docker restart a3a3a3a3

至此,修改已全部完成。